1. 程式人生 > >c語言的隱式(自動)資料型別轉換

c語言的隱式(自動)資料型別轉換

一.算術運算子中的轉換規則:

double ←── float 高

long

unsigned

int ←── char,short 低

注意:圖中橫向箭頭表示必須的轉換,如兩個float型數參加運算,雖然它們型別相同,但仍要先轉成double型再進行運算,結果亦為double型。縱向箭頭表示當運算子兩邊的運

算數為不同型別時的轉換,如一個long 型資料與一個int型資料一起運算,需要先將int型資料轉換為long型, 然後兩者再進行運算,結果為long型。所有這些轉換都是由系統自動

進行的, 使用時你只需從中瞭解結果的型別即可。這些轉換可以說是自動的。

二.賦值運算子中的轉換規則:

在賦值運算中,賦值號兩邊量的資料型別不同時, 賦值號右邊量的型別將轉換為左邊量的型別。 如果右邊量的資料型別長度左邊長時,將丟失一部分資料,這樣會降低精度, 

丟失的部分按四捨五入向前舍入。

注意:常量的預設轉換型別:

1.整型常量的預設資料型別是int型別,即有符號整型。

2.浮點數常量的預設型別是double型別,即長浮點數型別。

三.輸出時的轉換:

在程式中將資料用printf函式以指定格式輸出時,當要輸出的鹽據型別與輸出格式不符時,便自動進行型別轉換,如一個long型資料用整型格式(%d)輸出時,則相當於將long型轉

換成整型(int)資料輸出;一個字元(char)型資料用整型格式輸出時,相當於將char型轉換成int型輸出。

注意:較長型資料轉換成短型資料輸出時,其值不能超出短型資料允許的值範圍,否則轉換時將出錯。