表达式求值的顺序一部分是由操作符的优先级和结合性决定。
同样,有些表达式的操作数在求值的过程中可能需要转换为其他类型。
算术转换
对于不同类型的操作数,再+,-等操作符运行算前要进行算术转换,否则操作无法运行。
long double
double
float
unsigned long int
long int
unsigned int
int
顺序自下往上,由低到高
隐式类型转换
char 和short 再参与表达式运算前,要进行(整型提升);
因为C的整型算术运算总是至少以缺省(默认)整型类型的精度来进行的
整型提升方法
有符号,整型提升高位补充符号位
再放进char等,只有八字节要进行截断
例如:
c
只要参与表达式运算
,
就会发生整形提升
,
表达式
+c
,
就会发生提升
,
所以
sizeof(+c)
是
4
个字
节