Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
为什么输出有差异?
class Amie { public static void main(String...a) { int i=5; i=++i/i++; SOP(i); } }
输出=1
在 C ---
void main() { int i=5; i=++i/i++; printf(i); }
输出 = 2
Java 标准确实规定了应该如何评估这样的表达式,并且只有 1 个可能的答案 - 1。
在 C 的情况下,标准不能保证可能的优化。您可以在其他编译器生成的可执行文件中收到 2 和 1。所以这是C中未定义的行为