设有说明:char w; int x; float y;double z;则表达式w*x+z-y值的数据类型是什么?

设有说明:char w; int x; float y;double z;则表达式w*x+z-y值的数据类型是什么?
这种是根据什么判断数据类型的?

char 类型其实也可以看作整数,此处可以看作ascii码只,也可以看作整数,不过范围比较小
w * x 返回数据类型为 int
w * x + z,因为z为double类型, 将w * x的类型隐式转换为double类型与z计算
w * x+z-y y是float类型 运算级别double大于float 相当于double-double类型的
所以最后整体返回数据类型为 double
其实考察的就是对数据类型运算级别的理解,级别由低向高转换。
希望对题主有所帮助,望采纳!

double
在计算这个表达式时,首先要将各个变量强制转化为最高的存储类型。相当于(double)w*(double)x+(double)z-y,不同类型的运算 要转化成相同类型的 转换从低到高 char-->float-->short-->int-->double

double在这个运算里面的级别是最高的,所以最后的类型就是double