若有以下类型标识符定义:int x=2;char w='a';float y=23.45f;double z=45.6789;则表达式w*x+y-z的结果类型是( )
A、
float
B、
char
C、
int
D、
double
【正确答案】:D
【题目解析】:
当不同类型的量进行混合算术运算时,系统自动进行合理的类型转换。编译器就会自动把低级类型向高级类型转换。数据类型级别由低到高分别为:char→int→float→double。转换时由低级别向高级别转换。会自动提升为参与表达式求值的最上级类型double。故本题选D。
使用强制类型转换运算符:static_cast或const_cast。