C強制型別轉換與隱式轉換

2021-06-20 22:05:44 字數 603 閱讀 7594

如果乙個運算子兩邊的運算數型別不同,先要將其轉換為相同的型別,即較低型別轉換為較高型別,然後再參加運算,轉換規則如下圖所示:

圖中橫向箭頭表示必須的轉換,如兩個float型數參加運算,雖然它們型別相同,但仍要先轉成double型再進行運算,結果亦為double型。 縱向箭頭表示當運算子兩邊的運算數為不同型別時的轉換,如乙個long 型資料與乙個int型資料一起運算,需要先將int型資料轉換為long型, 然後兩者再進行運算,結果為long型。所有這些轉換都是由系統自動進行的, 使用時你只需從中了解結果的型別即可。這些轉換可以說是自動的,但然,c語言也提供了以顯式的形式強制轉換型別的機制。

記憶小竅門:

短位元組向長位元組看齊,

有符號向無符號看齊,

整數向浮點型看齊,

單精度向雙精度看齊,

把高位型別賦值給低位型別,就必須進行強制型別轉換,否則編譯會出錯。

當較低型別的資料轉換為較高型別時,一般只是形式上有所改變, 而不影響資料的實質內容, 而較高型別的資料轉換為較低型別時則可能有些資料丟失。

C語言基礎隱式型別轉換與強制型別轉換示例解析

目錄 資料有不同的型別,不同型別資料之間進行混合運算時必然涉及到型別的轉換問題。轉換包括隱式型別轉換和強制型別轉換。型別轉換的原則 占用mizfde記憶體位元組數少 值域小 的型別,向占用記憶體位元組數多 值域大 的型別轉換,以保證精度不降低。隱式轉換也稱為自動轉換,遵循一定的規則,由編譯器自動完成...

c 中的型別轉換(強制轉換和隱式型別轉換)

在我們學習c語言的時候,就知道強制型別轉換和隱式型別的轉換,但是在型別轉換的過程中,很有可能乙個不注意,容易出問題,這無疑是加大了,程式設計師的工作量,而且還檢查很不好檢查。所以在c 中就對型別的轉換做了一定的限制,但是實際中大多數人,是在學習了c 語言後才學習 c 語言所以就用了 c 語言中的型別...

C 隱式型別轉換

c 定義了一組內建型別物件之間的轉換標準,在必要時它們被編譯器隱式的應用到物件上。發生隱式型別轉換的情景 1,在混合型別的算術表示式中 轉換原則 轉換為最寬的資料型別。也可叫,算術轉換。int ival 5 double dval 3.14 ival 被提公升為double型別 ival dval ...