1. 程式人生 > 其它 >「C語言迷惑行為大賞」這些程式碼你絕對猜不到結果!

「C語言迷惑行為大賞」這些程式碼你絕對猜不到結果!

▓程式碼0:


輸出結果:

0-->10

以上特性被常見編譯器支援,但是標準中並未提到。

▓程式碼1


輸出結果:

Success

等價於:

printf("%s\n",stderr(errno));

由於你的程式碼前面並沒有執行出錯設定errno,因此errno會是0,而對應的描述資訊就是Success。

▓程式碼2:


輸出結果:

4

4

10

sizeof實際作用的物件是型別。sizeof中的表示式本身並不會被執行。

▓程式碼3


輸出結果:

C語言程式設計俱樂部C語言程式設計俱樂部C語言程式設計俱樂部

為什麼不會輸出公眾號呢?原因在於標準輸入預設是行緩衝,而標準錯誤是無緩衝。

▓ 程式碼4


輸出結果:

10

switch中的int b = 20,並不會被執行,你編譯時就會發現有警告。

▓程式碼5


輸出結果:

o

等價於:

char*str="hello 公眾號C語言俱樂部";

printf("%c\n",str[4]);

▓程式碼6


災難!,可能會崩潰

▓ 程式碼7


輸出結果:

end

原因也很簡單,sizeof(arr)/sizeof(int)的結果是unsigend, int型別的i 和unsigned比較,被轉換為一個很大的unsigned數,所以for迴圈的條件不滿足。

▓程式碼8


輸出結果:

1653732529

▓程式碼9


輸出結果:

1199094392

原因:浮點數在計算機中按照IEEE754標準儲存!


- End -

————————————

不管你是轉行也好,初學也罷,進階也可,如果你想學程式設計,進階程式設計師~

【值得關注】我的 編 程 學 習 交 流 俱 樂 部!【點選進入】

C語言入門資料(網盤連結免費分享):


C語言推薦書籍(PDF免費分享):