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下解析失敗輸出一個空格,,
