當前位置:才華齋>計算機>C語言>

C語言型別轉換的方法

C語言 閱讀(2.5W)

我們在程式設計序的時候,經常會出現不同型別的資料之間需要計算、賦值,必然會出現型別轉換問題。C語言的變數資料型別是可以轉換的,轉換的方法有兩類,一種是自動轉換,一種是強制轉換。

C語言型別轉換的方法

  自動轉換

這種轉換髮生在不同資料型別的量混合運算或賦值時,由編譯系統自動完成。自動轉換遵循以下規則

1,若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。,2,轉換時按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。

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

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

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

  強制型別轉換

強制型別轉換是通過型別轉換運算來實現的,形式為在要轉換的數值或者表示式前用小括號將要型別括起來。比如要將double型別的資料強制轉換為int型:

double d = 1.234;

float f = 5.678;

int i = (int)d;

也可以是整個表示式的轉換:

long l = (long)(d + f);

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

1,型別說明符和表示式都必須加括號(單個變數可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之後再與y相加了。

2,無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變數的資料長度進行的臨時性轉換,而不改變資料說明時對該變數定義的型別,也就是被強制轉換的變數或表示式本身還是原來的型別。