隱式型別轉換的規則
確定二元運算中的哪個運算元要轉換為另乙個運算元的型別是,其機制相當簡單。其基本規則是,將值域較小的運算元型別轉換為另乙個運算元型別,但在一些情況下,兩個運算元都要轉換型別。
編譯器按順序採用如下規則,確定要使用的隱式型別轉換;
(1)如果乙個運算元的型別是long double。就把另乙個操作轉換為long double型別。
(2)否則,如果乙個運算元的型別是double,就把另乙個操作轉換為double型別。
(3)否則,如果乙個運算元的型別是float,就把另乙個操作轉換為float型別。
(4)否則,如果兩個運算元的型別都是帶符號的整數或無符號的整數的整數,就把級別較低的運算元轉換為另乙個運算元的型別。無符號整數型別的級別從低到高為:siqned char,short,int,long,long long
每個無符號整數型別的級別都與對應的符號整數型別相同,所以unsigned int型別的級別與int型別相同。
(5)否則,如果帶符號整數型別的運算元級別低於無符號整數型別的級別,就把帶符號整數型別的運算元轉換無符號整肅型別。
(6)否則,如果帶符號整數型別的值域包含了無符號整數型別所表示的值,就把無符號整數型別轉換為帶符號的整數型別。
(7)否則,兩個運算元都轉換為帶符號整數型別對應的無符號整數型別。
C語言隱式型別轉換規則
先看程式 include include int main int argc,char argv 執行結果是 1 1 解釋 按步驟進行.1.如果其中乙個運算元為long double型別,則另乙個運算元被轉換為long double.2.否則,如果其中乙個運算元為double,則另乙個運算元被轉換為...
C語言資料型別隱式轉換規則
c語言裡有各種資料型別,包含char,uchar,short,ushort,int,uint,long,ulong,float,double。每種數值型別能表達的值的範圍是不同的,而c c 的編譯器又允許這幾種型別之間進行混合運算,這就帶來了型別轉換問題。c語言隱式轉換規則簡單來說就是先進行整型提公...
筆記 隱式轉換規則
學習並背誦全文型別 undefined null string boolean number 值undefined null 所有字串 true false 所有數字 nan object的成員叫物件,包括array,function,math,date,json,regexp等除了原始值之外的所有...