想问大神,c++中两个不同类型的数(比如double和int型)相加得到的是什么类型的数?
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、多重表达式和强制转换,每一步运算或转换后重复应用本规则。
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、多重表达式和强制转换,每一步运算或转换后重复应用本规则。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询