C語言資料型別轉換

2021-06-21 02:00:03 字數 851 閱讀 3673

自動轉換發生在不同資料型別的量混合運算時,由編譯系統自動完成。

自動轉換遵循以下規則:

若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。

轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。

所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表示式,也要先轉換成double型,再作運算。

char型和short型參與運算時,必須先轉換成int型。

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

下圖表示了型別自動轉換的規則。

【例3-12】

main()
本例程式中,pi為實型;s,r為整型。在執行s=r*r*pi語句時,r和pi都轉換成double型計算,結果也為double型。但由於s為整型,故賦值結果仍為整型,捨去了小數部分。強制型別轉換是通過型別轉換運算來實現的。

其一般形式為:

(型別說明符)  (表示式)

其功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。

例如:

(float) a;  /* 把a轉換為實型 */

(int)(x+y); /* 把x+y的結果轉換為整型 */

在使用強制轉換時應注意以下問題:

【例3-13】

main()
本例表明,f雖強制轉為int型,但只在運算中起作用,是臨時的,而f本身的型別並不改變。因此,(int)f的值為 5(刪去了小數)而f的值仍為5.75。

C語言資料型別轉換

變數的資料型別是可以轉換的。轉換的方法有兩種,一種是自動轉換,一種是強制轉換。自動轉換發生在不同資料型別的量混合運算時,由編譯系統自動完成。自動轉換遵循以下規則 若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先...

C語言資料型別轉換

資料型別轉換就是將資料 變數 表示式的結果 從一種型別轉換到另一種型別。例如,為了儲存小數你可以將int型別的變數轉換為double型別。資料型別轉換的一般格式為 type name expressiontype name為要轉換到的資料型別,expression為表示式。例如 float a 把a...

C語言 資料型別轉換

資料型別轉換分為兩種,一種為隱式轉換 預設轉換 另一種為顯式轉換 強制轉換 隱式轉換就是編譯器默默地偷偷地進行的資料型別轉換,這種轉換不需要程式設計師干預,會自動發生。但隱式轉換不能滿足所有的需求。需要時,程式設計師也可以自己在 中明確地提出要進行型別轉換,這稱為強制型別轉換。一 c語言資料型別 二...