1表达式里,有符号还有无符号的char和short类型都将自动转换为int,在K&RC下,但不是在当前C下,float将自动转换为double,这种向上转换称为提升
2包含俩种数据类型的运算中,俩个值被转换俩种类型里较高的
3类型级别从高到底的顺序是 long doubl, double, float, unsigned long long, long long, unsigned long, long,unsigned int, int, char和short都没有被列在上述,是因为这俩种被自动转换为int
4在复制赋值语句中,结果被自动转换左边变量的类型例如:int a =3.2+3.3; 结果是6
5当作为函数参数时,传递的char和short会被转化为int,float被转为double
c中的指派就是
例如
int a =3.33+3.7; 结果是7.03会被截尾为7
int a =(int)3.33 +(int)3.7;a是6结果,因为3.33和3.7都被转换为3,所以结果是6
最后说一下,自己认为比较重要的就是++和--
在同一个表达式中用同一个变量
例如
int a=num + 1+ num++;
这个执行的顺序不一定是从左往右的,就是不一定先执行num,有可能先执行num++,所以尽量避免这种使用方法
网友评论