当我编译以下代码时,它在不同的环境中给出不同的输出。
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;
都是未定义行为的示例,因此结果取决于编译器、平台等。
请参阅 K&R 的“C 编程语言”,第 2.12 节
关于c - Dev-C++ 和 xcode 编译器的不同输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15738588/