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.
当我编译以下代码时,它会在不同的环境中给出不同的输出。
int a=4; a = ++a + ++a; printf("%d",a);
在 Dev-C++ 中编译它会给出 12,而在 xcode LLVM 编译器中它会给出 11 作为输出。
另外,当我编译以下代码时
int a=4; a = ++a + ++a + ++a; printf("%d",a);
它在 Dev-C++ 中给出 19 个,在 xcode LLVM 编译器中给出 18 个。
任何人都可以向我解释一下吗?
以下代码:
a = ++a + ++a;
和
a = ++a + ++a + ++a;
都是Undefined Behavior的例子,所以结果取决于编译器、平台等。
请查看 K&R 的“The C Programming Language”,第 2.12 节