规则:
- char和short类型参与运算的时候都会先转为int类型再运算
char + short => int + int
- 所有浮点类型的运算都会转为double类型进行运算
float + float => double + double
- 两种数据类型相同但一个是有符号,一个是无符号,则转为无符号类型
int + unsigned int => unsigned int + unsigned int
- 低类型会转为高类型
int + long => long + long
- 在赋值运算中,赋值号右边量的类型将转换为左边量的类型
char = int + short
这里首先会把short类型转换为int类型进行运算,最后得到int类型的结果,然后再将int类型的结果转为char类型赋给左值
关系图:
不同类型之间的转换层级关系如下所示: