C語言隱式型別轉換規則

2021-04-20 03:41:36 字數 690 閱讀 6535

先看程式:

#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等除了原始值之外的所有...