自動類型轉換是一個計算機術語,若參與運算量的類型不同,則先轉換成同一類型,然後進行運算。
轉換規則,隱式自動類型轉換,
轉換規則
在C語言中,自動類型轉換遵循以下規則:
1、若參與運算量的類型不同,則先轉換成同一類型,然後進行運算。
2、轉換按數據長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。
a、若兩種類型的位元組數不同,轉換成位元組數高的類型
b、若兩種類型的位元組數相同,且一種有符號,一種無符號,則轉換成無符號類型
3、所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉換成double型,再作運算。
4、char型和short型參與運算時,必須先轉換成int型。
5、在賦值運算中,賦值號兩邊量的數據類型不同時,賦值號右邊量的類型將轉換為左邊量的類型。如果右邊量的數據類型長度比左邊長時,將丟失一部分數據,這樣會降低精度,丟失的部分按四捨五入向前捨入。
隱式自動類型轉換
1、執行算術運算時,低類型(短位元組)可以轉換為高類型(長位元組);例如: int型轉換成double型,char型轉換成int型等等;
4、函式有返回值時,系統首先會自動隱式地將返回表達式的值的類型轉換為函式的返回類型,然後再賦值給調用函式返回;