#include<stdio.h>
int main(){
int a=5;
printf("%d %d %d",a++,a++,++a);
return 0;
}
答案如下:
In LINUX GCC compiler
7 6 8
In TURBO C
7 6 6
我可以理解7 6 6
的答案,但我實在無法理解為什麼LINUX GCC compiler的輸出是7 6 8
。雖然知道這屬於undefiend behavior
,但還是想知道為什麼有7 6 8
的結果出現。
原問題出處:Linux下C語言的幾道經典面試題
http://blog.csdn.net/laojiu_/...
其實是因為這是規格裡沒有的未定義行為,所以編譯器怎麼算都是對的,編譯器得到的結果不統一也是正確的。