C語言 第4課 型別轉換

2021-09-11 03:14:37 字數 1326 閱讀 3602

void main_1() 

void mian_2()

○ (type)var_name;

○ (type)value;

○ 目標型別能夠容納目標值:結果不變

○ 目標型別不能容納目標值:結果將產生中斷

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

#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位機時,將發生資料截斷。64位機器指標佔8位元組!表示式中的

char c = 0;    // 變數 c 占用1個位元組 

short s = c; // c 到 s 隱式型別轉換

int i = s; // s 到 i 隱式型別轉換

long = i; // i 到 l 隱式型別轉換

注意:○ 低型別到高型別的隱式轉換是安全的,不會產生截斷;

○ 高型別到低型別的隱式轉換是不安全的,導致不正確的結果。

輸出:

c = a

i = 97

j = 11223344

s = 3344

sizeof(c + s) = 4

sizeof(c + d) = 8

小結

強制型別轉換由程式設計師負責完成

○轉換可能產生截斷

○轉換不區分型別的高低

○轉換不成功時,編譯器會給出錯誤資訊

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

○低型別向高型別的轉換是安全的

○高型別向低型別的轉換是不安全的

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

c語言回顧4 型別轉換

1.強制型別轉換 long l 800 int i int l 1 語法 type name 2 轉化的結果 目標型別能夠容納目標值 結果不變 short轉化為int,兩個位元組轉為四個位元組 目標型別不能容納目標值 結果產生截斷 int轉為char,四個位元組轉乙個位元組,把int的高三個位元組扔...

c語言型別轉換

c語言型別轉換 自動型別轉換 預設型別轉換,隱式轉換,編譯器幫你完成 和 強制型別轉換 自己轉成自己想要的型別 自動型別轉換最常見的有 混合運算 賦值運算 和函式值的型別轉換 賦值運算 就是把 右邊的表示式的型別 轉換成 左邊 的表示式的型別。混合運算 指在乙個表示式中參與運算的物件不是同一種資料型...

c語言 型別轉換

關於資料型別的相關轉換,我們可以總結出三種情況。下面我們就來詳細的說一下具體情況和相關例題吧 說到資料型別轉換我們首先要說說相關資料型別。double 8位元組 longlong 8位元組 float 4位元組 long 4位元組 int 4位元組 short 2位元組 char 1位元組 以上型別...