先看程式:
#include
#include
int main(int argc, char**argv)
執行結果是:-1 > 1
解釋:按步驟進行.
1. 如果其中乙個運算元為long double型別,則另乙個運算元被轉換為long double.
2. 否則,如果其中乙個運算元為double, 則另乙個運算元被轉換為double.
3. 否則,如果其中乙個運算元為float, 則另乙個運算元也轉換為float.
4. 否則,兩個運算元進行 "整型公升級":
a. 如果其中乙個運算元為unsigned long int, 則另乙個運算元也被視為unsigned long int.
b. 否則,如果其中乙個運算元為long int,而另乙個運算元型別是unsigned int, 並且long int能夠表示unsigned int的所有值,則另乙個運算元也被視為long int;如果long int不能表示unsigned int的所有值,則兩個數都被視為unsigned long int.
c. 否則, 如果其中乙個運算元是long int,則另乙個運算元也被視為long int.
d. 否則, 如果其中乙個運算元是unsigned int, 則另乙個運算元也被視為unsigned int.
e. 否則, 兩個運算元都被視為int.
C語言(四)隱式型別轉換規則
隱式型別轉換的規則 確定二元運算中的哪個運算元要轉換為另乙個運算元的型別是,其機制相當簡單。其基本規則是,將值域較小的運算元型別轉換為另乙個運算元型別,但在一些情況下,兩個運算元都要轉換型別。編譯器按順序採用如下規則,確定要使用的隱式型別轉換 1 如果乙個運算元的型別是long 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等除了原始值之外的所有...