为什么Java输出50
而C ++为同一代码概念输出51
?
int i=5;
i= (++i + ++i + ++i + ++i + ++i + i++);
print i
Java:50
C ++:51
答案 0 :(得分:7)
结果不同,因为语言的具体说明不同。
为什么java说50
因为评估顺序是在Java中定义的。增加是:6 + 7 + 8 + 9 + 10 + 10 == 50.最终的增量被分配覆盖并且没有效果。
而c ++说51
所示程序在C ++中具有未定义的行为,因此它可以有任何输出。在这种情况下恰好是51。此答案中的更多详细信息:https://stackoverflow.com/a/4176333/2079303