前后增量中的java vs C ++

时间:2017-04-05 11:58:56

标签: java c++ increment operator-keyword

为什么Java输出50而C ++为同一代码概念输出51

int i=5;

i= (++i + ++i + ++i + ++i + ++i + i++);

print i

Java:50

C ++:51

1 个答案:

答案 0 :(得分:7)

结果不同,因为语言的具体说明不同。

  

为什么java说50

因为评估顺序是在Java中定义的。增加是:6 + 7 + 8 + 9 + 10 + 10 == 50.最终的增量被分配覆盖并且没有效果。

  

而c ++说51

所示程序在C ++中具有未定义的行为,因此它可以有任何输出。在这种情况下恰好是51。此答案中的更多详细信息:https://stackoverflow.com/a/4176333/2079303