回覆列表
  • 1 # 使用者566759068971

    C語言資料型別轉換分自動轉換和強制轉換兩類。

    自動轉換

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

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

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

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

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

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

    強制型別轉換

    強制型別轉換是透過型別轉換運算來實現的。其一般形式為: (型別說明符) (表示式) 其功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。例如: (float) a 把a轉換為實型(int)(x+y) 把x+y的結果轉換為整型在使用。

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

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

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

    具體如下:

    char short->int->usigned->long->double

    float->double

  • 中秋節和大豐收的關聯?
  • 皂角米和紅米大米可以一起熬粥喝嗎?