题目:
char a ; int b ; flat c ; double d ;
则表达式 a*b+d-c 值的类型为()
A float
B int
C char
D double
选啥呢,我选的B,为啥呢,因为我认为int 类型级别最高,当不同类型数据进行算术运算时,会进行从低到高类型的自动转换,所以无论哪种类型与int 进行算术运算,都会自动转换为int 类型再计算,所以选C;
答案:D
解析:
a*b+d-c
先计算a*b的数据类型,因为 a 为char与 b为 int ,int级别高于char,所以会先把a从char自动转换为int,再计算a乘b的值,a*b结果类型为int;
再计算a*b+d,因为a*b结果类型为int, d为double,double级别高于int,所以会先把a*b从int 自动转换为double再与d相加,a*b+d结果类型为double;
再计算a*b+d-c, 因为a*b+d结果类型为double,c 为fl