C語言 -- printf函數參數類型和打印格式不匹配


  C語言中,變量在運算或者賦值時會存在類型的自動轉換。很一般的情況這里不再討論,下面只說一下賦值和利用printf函數打印時的情況

 

  1.賦值時的自動轉換

  int a = 1.5;

  printf("%d", a);

  輸出值為1  因為1.5是一個double類型,但是在賦值為a時,由於a是一個int類型,所以將小數部分舍去,a為1

 

  2.printf函數中不涉及自動轉換

  他只按照固定的格式打印,如果解析失敗,就輸出對應格式下的0

  例如:

  int a = 1;

  printf("%f",a);

  輸出0.000000  因為a是int類型,用float類型就會解析失敗,所以輸出浮點數格式的0,即為0.000000

  

  其余的類似,如%c下解析失敗輸出一個空格,,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM