算術運算會先隱式轉換到相同型別再運算,結果的型別是轉換後的型別。PC機子上的型別轉換樹參考:
long double
|
double
float
unsigned long
/ \
unsigned int long
\
int
/ | \
bool, char, unsigned char, short, unsigned short, 列舉型別等
規則:
1、自動轉換。如果都是整數,所有小於 int 的型別會先自動轉換成 int 。首先這一步一定發生,也就是說 "a" + "b" 的結果型別是 int 而不是 char。
2、如果兩運算元不同型別,按照兩運算元尋找共同的目標轉換型別一次性轉換成目標型別,而不是一步步轉換。
3、多重表示式和強制轉換,每一步運算或轉換後重復應用本規則。
算術運算會先隱式轉換到相同型別再運算,結果的型別是轉換後的型別。PC機子上的型別轉換樹參考:
long double
|
double
|
float
|
unsigned long
/ \
unsigned int long
\
int
/ | \
bool, char, unsigned char, short, unsigned short, 列舉型別等
規則:
1、自動轉換。如果都是整數,所有小於 int 的型別會先自動轉換成 int 。首先這一步一定發生,也就是說 "a" + "b" 的結果型別是 int 而不是 char。
2、如果兩運算元不同型別,按照兩運算元尋找共同的目標轉換型別一次性轉換成目標型別,而不是一步步轉換。
3、多重表示式和強制轉換,每一步運算或轉換後重復應用本規則。