当我编译下面的代码时,它会在不同的环境中提供不同的输出。
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。
有人能解释一下这个吗?
答案 0 :(得分:0)
以下代码:
a = ++a + ++a;
和
a = ++a + ++a + ++a;
都是未定义行为的示例,因此结果取决于编译器,平台等。
请参阅K& R,第2.12节的“C编程语言”