【问题标题】:java vs C++ in pre and post increment前后增量中的java vs C++
【发布时间】:2017-08-31 00:43:33
【问题描述】:

为什么对于相同的代码概念,Java 输出 50 而 C++ 输出 51?

int i=5;

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

print i

Java:50

C++:51

【问题讨论】:

标签: java c++ increment operator-keyword


【解决方案1】:

结果不同,因为指定的语言不同。

为什么 java 说 50

因为在 Java 中定义了求值顺序。加法为:6+7+8+9+10+10 == 50。最后的post增量被赋值覆盖,没有效果。

而 c++ 说 51

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

【讨论】:

    猜你喜欢
    • 2012-06-01
    • 2012-01-24
    • 2014-05-03
    • 2019-03-27
    • 2012-10-17
    • 2015-12-21
    • 2011-05-11
    • 1970-01-01
    • 2014-06-03
    相关资源
    最近更新 更多