c語言回顧4 型別轉換

2021-10-03 15:57:07 字數 1195 閱讀 7847

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...