當前位置:編程學習大全網 - 網站源碼 - 用printf輸出浮點型數據時出現錯誤

用printf輸出浮點型數據時出現錯誤

明白兩點,問題就迎刃而解:

int型和char型是兼容的,即int型可以用%c輸出,輸出是字符;反過來char型可以用%d輸出,輸出是十進制整數。

浮點數沒有被定義為無符號型,所以用unsigned修飾float型後實質是將變量聲明成了int型。

根據以上兩點,解釋如下:

圖1在正確輸出i(A)並回車後,把j的4個字節拿出壹個最低字節按字符輸出,由於65的浮點尾數低字節是0,是%c的不可顯示字節,所以只輸出了個回車。接著按char型取出j的第二個字節(還是0)輸出,結果同上。

圖2的j和k交換位置後,前兩個兼容都輸出字符A,到最後壹個j時才遇到上面剛才分析過的情況。

圖3由於j成了無符號整數,所以輸出都正確。

供參考。建議不弄這種題,由於輸出格式化控制字符串與變量類型不匹配,本身就是錯誤的,不同的編譯器很可能做出不同的處理,所以結果也可能會不同……

  • 上一篇:南通誠源有多少個公司
  • 下一篇:騰訊的投票贊助商能看到誰投的票嗎?
  • copyright 2024編程學習大全網