亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

%lf改成%d的時候數值會變,變成4195870,不知道此時的對應規則是怎樣的

內容如題目所示

正在回答

2 回答

沒有轉換規則。這里并不是類型轉換!

printf中%lf(實際上應該寫成%f)會希望相應的參數類型為double,printf函數會把那個參數當作double來取值和打印,其實它并不知道這個參數到底是不是double類型的。

同樣,見到%d時printf會希望那個參數是int型。

所以當你傳入給printf一個double類型的參數,卻用了%d時,printf會把那個參數當作int型來讀取的,而通常int和double在計算機中的存儲方式是不一樣的,于是會得到錯誤的值。


在 a = b;這類賦值語句中,發生的才是類型轉換。說明下:并不是只有這種情況下才有類型轉換,類型轉換會在很多種情況下顯式或隱式地發生,很復雜。

如上所說的:printf中的傳入參數是不會根據格式字符來進行類型轉換的,程序員必須保證傳入了正確的類型。

0 回復 有任何疑惑可以回復我~

不貼全代碼 - -?

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

%lf改成%d的時候數值會變,變成4195870,不知道此時的對應規則是怎樣的

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號