c語言 賦值過程中的類型轉換

如果賦值運算符兩側的類型一樣,則直接進行賦值,當賦值運算符兩側的類型不一樣時,在賦值時要進行類型轉換,轉換是由系統自動進行進行的,規則如下:

(一)把浮點型數據賦值給整型變量時,要先進行取整操作(去掉小數部分),然後再賦值給整型變量。假設a爲整型變量,執行a = 4.7後,a = 4 。

(二)將整型數據賦值給浮點型變量時,會將整型數據以浮點數的形式賦值給變量。假設b爲單/雙精度實數,執行 b = 4 後,b = 4.0   會以單/雙精度實數形式來存儲。

(三)將單精度賦值給雙精度變量時,內存變爲雙精度類型存儲大小,數值不變,有效位數擴展到15位,將雙精度數據類型賦值給單精度變量時,先將雙精度數轉換爲單精度,即只取6~7位有效數字。應注意雙精度數值的大小不能超過單精度型變量的數值範圍

(四)字符型數據賦值給整型變量時,將字符的ASCLL代碼賦給整型變量。例如 :i ='A'   =>     i = 65

  (五)將一個佔字節多的整型數據賦給一個佔字節少的整型變量時(例如把int 賦值給short),只將其低字節原封不動的賦給變量(即發生截斷)。

在進行賦值時,儘量避免將字節多的數據賦值給字節少的數據,因爲賦值後數據可能會出現失真,如果一定要賦值,應當保證賦值後數值不會發生改變,即所賦的值在變量的允許數值範圍內。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章