【发布时间】:2011-07-31 01:57:42
【问题描述】:
这段代码后面x的值是多少?
int x = 5;
x = ++x + x++;
在 Java 中,结果是 12,但在 C++ 中,结果是 13。
我搜索了 Java 和 C++ 的运算符优先级,它们看起来一样。那么为什么结果不一样呢?是编译器的原因吗?
【问题讨论】:
-
问题与运算符优先级无关。有关 C++ 的信息,请参见此处:stackoverflow.com/questions/4176328/…
-
这不是人们选择的问题的重复,因为这只是 C++,而这与 Java 相比。
-
g++ 和 MSVC 给出 13,但例如 clang++ 给出 12。它真的 是未定义。
标签: java c++ operator-precedence