(1) 在c語言中,整型、實型和字元型資料間可以混合運算(因為字元資料與整型資料可以通用)。
如果乙個運算子兩側的運算元的資料型別不同,則系統按"先轉換、後運算"的原則,首先將資料自動轉換成同一型別,然後在同一型別資料間進行運算。
1)橫向向左的箭頭,表示必須的轉換。char和short 型必須轉換成 int 型,float型必須轉換成double型。
2)縱向向上的箭頭,表示不同型別的轉換方向。
例如,int型與double型資料進行混合運算,則先將int型資料轉換成double型,然後在兩個同型別的資料間進行運算,結果為double型。
注意:箭頭方向只表示資料型別由低向高轉換,不要理解為int型先轉換成unsigned型,再轉換成long型,最後轉換成double型。
(2)除自動轉換外,c語言也允許強制轉換。
資料型別強制轉換的一般格式為:
(要轉換成的資料型別)(被轉換的表示式)
當被轉換的表示式是乙個簡單表示式時,外面的一對圓括號可以預設。
例如,(double)a (等價於(double)(a)) /將變數a的值轉換成double型/
(int)(x + y) /將x+y的結果轉換成int型/
(float)5 / 2(等價於(float)(5)/2) /將5轉換成實型,再除以2(=2.5)/
(float)(5 / 2) /將5整除2的結果(2)轉換成實型(2.0)/
注意:強制轉換型別得到的是乙個所需型別的中間量,原表示式型別並不發生變化。例如,(double)a 只是將變數a的值轉換成乙個double型的中間量,其資料型別並未轉換成double型。
C語言資料型別轉換
自動轉換發生在不同資料型別的量混合運算時,由編譯系統自動完成。自動轉換遵循以下規則 若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。所有的浮點運算都是以雙精度進行的,即使僅...
C語言資料型別轉換
變數的資料型別是可以轉換的。轉換的方法有兩種,一種是自動轉換,一種是強制轉換。自動轉換發生在不同資料型別的量混合運算時,由編譯系統自動完成。自動轉換遵循以下規則 若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先...
C語言資料型別轉換
資料型別轉換就是將資料 變數 表示式的結果 從一種型別轉換到另一種型別。例如,為了儲存小數你可以將int型別的變數轉換為double型別。資料型別轉換的一般格式為 type name expressiontype name為要轉換到的資料型別,expression為表示式。例如 float a 把a...