1. 強制型別轉換
long l=800;
int i=(int) l;
(1)語法:(type)name
(2)轉化的結果:目標型別能夠容納目標值:結果不變(short轉化為int,
兩個位元組轉為四個位元組)
目標型別不能容納目標值:結果產生截斷(int轉為char,四個位元組轉乙個位元組,把int的高三個位元組扔掉了,只剩最低一位元組)
(3)例項分析:
#include
struct ts
;
struct ts ts;
int main()
2. 隱式型別轉換
short s=800;
int i=s;
(1) 編譯器主動進行的型別轉換
(2) 同強制類,低型別到高型別安全,不截斷,高型別到低型別,會截斷。
(3) 何時發生隱式型別轉換:
(安全的轉換方向char,short—int—unsigned int—long—unsigned long—float—double)牢記何種轉換安全!!
算術運算中,低型別轉為高型別(如char和short進行運算,先char轉short)
賦值表達,表示式的值轉為左邊變數的型別
函式呼叫,實參轉化為形參的型別
函式返回值,return表示式轉化為返回值
(4) 例項
#include
int main()
結果:
總結
1.強制型別轉換由程式設計師進行完成
轉換可能產生截斷
轉換不區分型別的高低,但是可能產生結果的錯誤
轉換不成功,編譯器給出錯誤資訊
2.隱式型別轉換由編譯器完成
低型別轉高型別安全,反之不安全
C語言高階剖析 4 型別轉換
c語言中的資料型別可以轉換,分為強制型別轉換和隱式型別轉換 int main 注意 不是所有的強制型別轉換都能成功,當不能進行強制型別轉換時,編譯器將產生錯誤資訊 舉例說明 這是編譯器主動進行的型別轉換 注意 低型別到高型別的隱式型別轉換是安全的,不會產生截斷 高型別到低型別的隱式型別轉換是不安全的...
C深入 4 型別轉換
type value 強制型別轉換的結果 目標型別能夠容納目標值 結果不變 目標型別不能容納目標值 結果將產生截斷 注意 不是所有的強制型別轉換都能成功,當不能進行強制型別轉換時,編譯器將產生錯誤資訊。char c 0 變數c占用1個位元組 short s c c 到 s 隱式型別轉換 int i ...
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...