您好,登錄后才能下訂單哦!
這篇“C語言類型轉換的作用是什么及怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C語言類型轉換的作用是什么及怎么使用”文章吧。
C語言中的數據類型可以進行轉換
強制類型轉換
隱式類型轉換
強制類型轉換的語法
(Type)var_name;
(Type)value;
強制類型轉換的結果
目標類型能夠容納目標值:結果不變
目標類型不能容納目標值:結果將產生截斷
注意:不是所有的強制類型轉換都能成功,當不能進行強制類型轉換時,編譯器將產生錯誤信息(比如將自定義數據類型轉換成基本數據類型)。
下面看一段強制類型轉換的代碼:
#include <stdio.h> struct TS { int i; int j; }; struct TS ts; int main() { short s = 0x1122; char c = (char)s; // 0x22 int i = (int)s; // 0x00001122 int j = (int)3.1415; // 3 unsigned int p = (unsigned int)&ts; //long l = (long)ts; // error //ts = (struct TS)l; // error printf("s = %x\n", s); printf("c = %x\n", c); printf("i = %x\n", i); printf("j = %x\n", j); printf("p = %x\n", p); printf("&ts = %p\n", &ts); return 0; }
下面為輸出結果:
注意將自定義數據類型轉換成基本數據類型會報錯。
隱式類型轉換是編譯器主動進行的類型轉換
注意:
低類型到高類型的隱式類型轉換是安全的,不會產生截斷
高類型到低類型的隱式類型轉換是不安全的,導致不正確的結果
隱式類型轉換的發生點
算術運算式中,低類型轉換為高類型
賦值表達式中,表達式的值轉換為左邊變量的類型
函數調用時,實參轉換為形參的類型
函數返回值,return表達式轉換為返回值類型
安全的隱式類型轉換:
下面看一段隱式類型轉換的代碼:
#include <stdio.h> int main() { char c = 'a'; int i = c; // safe unsigned int j = 0x11223344; short s = j; // unsafe printf("c = %c\n", c); printf("i = %d\n", i); printf("j = %x\n", j); printf("s = %x\n", s); printf("sizeof(c + s) = %d\n", sizeof(c + s)); return 0; }
下面為輸出結果:
c 為 char 類型,s 為 short 類型,再進行四則運算前,各個比 int 窄的加數自動提升為 int,結果也為 int 類型,故 size 為4
以上就是關于“C語言類型轉換的作用是什么及怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。