C 4 型別轉換

2021-09-13 02:03:45 字數 1027 閱讀 8680

void code_1()

void code_2()

強制型別轉換的結果

注意:不是所有的強制型別轉換都能成功,當不能進行強制型別轉換時,編譯器將產生錯誤資訊。

#include struct ts

;struct ts ts;

int main()

輸出:

s = 1122

c = 22

i = 1122

j = 3

p = 804a01c

&ts = 0x804a01c

注意:unsigned int p = (unsigned int)&ts; 在64位機時,將發生資料截斷

void code()

- 函式返回時,return 表示式轉換為返回值型別

#include int main()

輸出:

c = a

i = 97

j = 11223344

s = 3344

sizeof(c + s) = 4

sizeof(c + d) = 8

隱式型別轉換由編譯器自動完成

注意:標準c編譯器的型別檢查是比較寬鬆的,因此隱式型別轉換可能帶來意外的錯誤。

C 4種型別轉換

c 型別轉換 const cast,去const屬性。static cast,靜態型別轉換。如int轉換成char。dynamic cast,動態型別轉換。如子類和父類之間的多型型別轉換。reinterpret cast,僅僅重新解釋型別,但沒有進行二進位制的轉換。const cast const ...

C 4種型別轉換

總 結 去const屬性用const cast。基本型別轉換用static cast。多型類之間的型別轉換用daynamic cast。不同型別的指標型別轉換用reinterpreter cast。任何具有明確定義的型別轉換,只要不包含底層const,都可以使用static cast 注 頂層con...

C 4種強制型別轉換

c 的四種強制型別轉換為 static cast const cast reinterpret cast和dynamic cast 型別轉換的一般形式 cast name expression 任何具有明確定義的型別轉換,只要不包含底層const,都可以使用static cast double sl...