課程
/后端開發
/C
/C語言入門
內容如題目所示
2015-02-07
源自:C語言入門 2-8
正在回答
沒有轉換規則。這里并不是類型轉換!
printf中%lf(實際上應該寫成%f)會希望相應的參數類型為double,printf函數會把那個參數當作double來取值和打印,其實它并不知道這個參數到底是不是double類型的。
同樣,見到%d時printf會希望那個參數是int型。
所以當你傳入給printf一個double類型的參數,卻用了%d時,printf會把那個參數當作int型來讀取的,而通常int和double在計算機中的存儲方式是不一樣的,于是會得到錯誤的值。
在 a = b;這類賦值語句中,發生的才是類型轉換。說明下:并不是只有這種情況下才有類型轉換,類型轉換會在很多種情況下顯式或隱式地發生,很復雜。
如上所說的:printf中的傳入參數是不會根據格式字符來進行類型轉換的,程序員必須保證傳入了正確的類型。
不貼全代碼 - -?
舉報
C語言入門視頻教程,帶你進入編程世界的必修課-C語言
2 回答x值取零的時候是不是不會改變自身數值
2 回答為啥給n,f,d賦值是時候把c寫成了'c'就變成99了?
2 回答如果我把int n 改成float n 是表達了什么呢?n的數據類型變成單精度了嗎?如果是這樣的話,輸出得到的數值不會變才對,可是結果為什么變了
3 回答printf(%d\n",a+1)不改變原來的值
2 回答怎么改變循環變量的值
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-02-08
沒有轉換規則。這里并不是類型轉換!
printf中%lf(實際上應該寫成%f)會希望相應的參數類型為double,printf函數會把那個參數當作double來取值和打印,其實它并不知道這個參數到底是不是double類型的。
同樣,見到%d時printf會希望那個參數是int型。
所以當你傳入給printf一個double類型的參數,卻用了%d時,printf會把那個參數當作int型來讀取的,而通常int和double在計算機中的存儲方式是不一樣的,于是會得到錯誤的值。
在 a = b;這類賦值語句中,發生的才是類型轉換。說明下:并不是只有這種情況下才有類型轉換,類型轉換會在很多種情況下顯式或隱式地發生,很復雜。
如上所說的:printf中的傳入參數是不會根據格式字符來進行類型轉換的,程序員必須保證傳入了正確的類型。
2015-02-07
不貼全代碼 - -?