C語言之類型轉換

數據類型轉換一般遵循少量的原則,一般來說,自動轉換是將“窄”操作數轉換成“寬”操作數,以至於不會丟失信息。把長類型的數據複製給短類型時會發生數據丟失。這可能會產生警告,但是是合法的。
    機器字符集中的字符按照ASCII碼錶示都是正數,但是任意的位形式存放在字符變量中可能會是負的,這個根據機器決定。爲了易用性,當需要存放一些非字符的數據在字符類型中時,需要定義該char變量是signed還是unsigned。
    需要注意的是,float不會自動轉化爲double類型,這是和原始的定義的一個改變,在數學運算的庫中,都會使用double精度,而用float的主要原因是在大的數組中保存數據,少部分原因是減少機器時間,因爲double精度非常耗時。
    當涉及到unsigned操作數時,情況會變得比較複雜。
    在賦值的時候也會發生類型轉換,右邊的值會被轉化成左邊的類型,這個也是整個結果的類型。long轉化爲short或者char時,會丟掉超過的位;float轉化爲int會丟掉小數部分。
    在函數調用參數傳遞是也會發生類型轉換,通常是自動轉換。
    明確地轉換時通過強制轉換符強制轉換(cast),注意在強制轉換的時候,是在原數的基礎上產生一個新的值,原數並沒有改變。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章