-21
为什么Java的输出50
而同一代码的概念C++输出51
?的Java VS C++中的前置和后置增量
int i=5;
i= (++i + ++i + ++i + ++i + ++i + i++);
print i
爪哇:50
C++:因为lauguages被不同地指定51
为什么Java的输出50
而同一代码的概念C++输出51
?的Java VS C++中的前置和后置增量
int i=5;
i= (++i + ++i + ++i + ++i + ++i + i++);
print i
爪哇:50
C++:因为lauguages被不同地指定51
结果是不同的。
为什么java的说50
因为计算的顺序是用Java定义左右。加法是:6 + 7 + 8 + 9 + 10 + 10 == 50.最后的增量增量被赋值覆盖并且没有效果。
而C++表示51
所示出的程序有未定义的行为在C++中,因此它可以有任何输出。在这种情况下恰好是51。在这个答案详细信息:https://stackoverflow.com/a/4176333/2079303
这不是有效的C++,这就是原因。 –
这句话的真正目的是什么?(++ i + ++ i ++ ++ i ++ ++ i ++ ++ i ++ ++);'? –
类似/欺骗[这里](http://stackoverflow.com/questions/949433/why-are-these-constructs-using-undefined-behavior) – WhiZTiM