首頁  >  問答  >  主體

gcc - Linux下C語言的一道經典面試題

如果在Linux下使用GCC編譯器執行下列程序,輸出結果為何?

#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語言的幾道經典面試題

巴扎黑巴扎黑2671 天前944

全部回覆(2)我來回復

  • 学习ing

    学习ing2017-06-26 11:01:11

    http://blog.csdn.net/laojiu_/...

    回覆
    0
  • 習慣沉默

    習慣沉默2017-06-26 11:01:11

    其實是因為這是規格裡沒有的未定義行為,所以編譯器怎麼算都是對的,編譯器得到的結果不統一也是正確的。

    回覆
    0
  • 取消回覆