型別之間的轉換
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 型別 這種定義方式有點類似與定義乙個變數...