C語言 類型自動轉(zhuǎn)換
類型自動轉(zhuǎn)換是在運算時系統(tǒng)自動完成的。轉(zhuǎn)換規(guī)則由級別低的類型轉(zhuǎn)換為級別高的類型,即由存儲位數(shù)少的向存儲位數(shù)多的轉(zhuǎn)換。
圖中橫向箭頭表示必須的轉(zhuǎn)換,例如,兩個char型數(shù)據(jù)或兩個short數(shù)據(jù)也必須轉(zhuǎn)換為int型才進行運算。圖中縱向箭頭表示當(dāng)運算符兩側(cè)的操作數(shù)類型不同時,由級別低的向級別高的轉(zhuǎn)換。如int型與long型運算,將int型轉(zhuǎn)換為long型,結(jié)果也為long型。這里需要注意的是,當(dāng)int型與double型進行運算時,并不是int先轉(zhuǎn)換為unsigned int,再轉(zhuǎn)換為long等逐層轉(zhuǎn)換,而是直接將int型轉(zhuǎn)換為double型。當(dāng)然,所有的轉(zhuǎn)換都是由系統(tǒng)自動完成的。
例如:
5+'a'/2.0+14.0/2
運行步驟為:
①先進行優(yōu)先級最高的運算,先將字符專換為整型97。
②因為97為整型,2.0為double型,要進行運算,先將97轉(zhuǎn)換為double型,再運算97/2.0, 結(jié)果為48.5。
③再運行14.0/2,結(jié)果為6.5。
④之后計算5+48.5+6.5,將5轉(zhuǎn)換為double型,結(jié)果為60。
點擊加載更多評論>>