【发布时间】:2012-09-11 12:43:26
【问题描述】:
可能重复:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)
我遇到了一个关于增量运算符的奇怪问题。
我在 PHP 和 C 中得到相同表达式的不同输出。
In C language
main()
{
int i = 5;
printf("%d", i++*i++); // output 25;
}
In PHP
$i = 5;
echo $i++*$i++; // output 30
谁能解释这种奇怪的行为?谢谢。
【问题讨论】:
-
在 C 中它是未定义的行为,所以从技术上讲,您可以获得任何输出。好读:Undefined Behavior and Sequence Points
-
@Ashwini - 为什么重要?你会用这样的代码做什么?
-
在 PHP 中,这也是未定义的。见Example 1。