(type) value;
強制型別轉換的結果:
目標型別能夠容納目標值:結果不變
目標型別不能容納目標值:結果將產生截斷
注意:不是所有的強制型別轉換都能成功,當不能進行強制型別轉換時,編譯器將產生錯誤資訊。
char c = 0; // 變數c占用1個位元組
short s = c; // c 到 s 隱式型別轉換
int i = s; // s 到 i 隱式型別轉換
long l = i; // i到 l 隱式型別轉換
高型別到低型別的隱式型別轉換是不安全的,會導致不正確的結果
轉換可能產生截斷
轉換不區分型別的高低
轉換不成功時,編譯器給出錯誤資訊
隱式型別轉換由編譯器自動完成
低型別向高型別的轉換是安全的
高型別向低型別的轉換是不安全的
標準c編譯器的型別檢查是比較寬鬆的,因此隱式型別轉換可能帶來意外的錯誤
C 4 型別轉換
void code 1 void code 2 強制型別轉換的結果 注意 不是所有的強制型別轉換都能成功,當不能進行強制型別轉換時,編譯器將產生錯誤資訊。include struct ts struct ts ts int main 輸出 s 1122 c 22 i 1122 j 3 p 804a0...
c語言回顧4 型別轉換
1.強制型別轉換 long l 800 int i int l 1 語法 type name 2 轉化的結果 目標型別能夠容納目標值 結果不變 short轉化為int,兩個位元組轉為四個位元組 目標型別不能容納目標值 結果產生截斷 int轉為char,四個位元組轉乙個位元組,把int的高三個位元組扔...
C語言高階剖析 4 型別轉換
c語言中的資料型別可以轉換,分為強制型別轉換和隱式型別轉換 int main 注意 不是所有的強制型別轉換都能成功,當不能進行強制型別轉換時,編譯器將產生錯誤資訊 舉例說明 這是編譯器主動進行的型別轉換 注意 低型別到高型別的隱式型別轉換是安全的,不會產生截斷 高型別到低型別的隱式型別轉換是不安全的...