四 型別轉換

2021-10-02 15:52:44 字數 722 閱讀 3778

型別之間的轉換

c 語言中的資料型別可以進行轉換

強制型別轉換

強制型別轉換的語法(

type)var_name;

(type) value;

強制型別轉換的結果

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

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

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

隱式型別轉換

編譯器主動進行的型別轉換

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

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

隱式型別轉換的發生點

算術表示式,低型別轉換為高型別

賦值表示式中,表示式的值轉換為左邊變數的型別

函式呼叫時,實參轉換為形參

小結:

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

-轉換可能產生截斷

轉換不區分型別的高低

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

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

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

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

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

C 高階篇(四) 型別轉換高階

目前為止,我們一直使用傳統的型別轉換符來進行簡單物件的型別轉換。例如,要把乙個double型別的浮點型數字轉換為int 的整型數字,我們是這樣做的 int i double d i int d 或者 i int d 這樣做對基本資料型別時沒問題的,因為基本資料型別的轉換已經有標準的定義。同樣的操作也...

PHP學習筆記(四) 型別 整型

乙個 integer 是集合 z 中的乙個數。整型值可以用十進位制,十六進製制或八進位制符號指定,前面可以加上可選的符號 或者 如果用八進位制符號,數字前必須加上 0 零 用十六進製制符號數字前必須加上 0x。結果 a1 1234 a2 123 a3 83 a4 26 整數溢位 結果 int 214...

C 11新標準之四 型別處理

在c 11之前,如果定義型別別名使用 typedef 方式來定義,定義的方式如下 cpp view plain copy typedef 型別名 別名 typedef double salary typedef double base base是double 型別 這種定義方式有點類似與定義乙個變數...