数据类型等级(字节长度)
char/short<int<unsigned<long<double;
float<double;
赋值语句导致的类型改变
在赋值语句中,=右边的值或表达式在赋值给左边的变量之前,先对右边的值或表达式进行计算,然后对值的数据类型转化为左边变量的数据类型,左边是什么类型,右边就要转换成什么数据类型,可能会导致其类型升级,也可能会导致降级
C语言的数据类型隐式转换
在以下四种情况会进行隐式转换
1、算术运算式中,低类型能够转为高类型
2、赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给它
3、函数调用中参数传递,系统隐式地将实参转换为形参的类型后,再赋值给形参
4、函数有返回值时,系统隐式地将返回的表达式类型转换为返回值类型,赋值给调用函数
数据的混合运算的隐式转换
1、字符必须先转换为整数(通过字符编码进行转换)。
2、short型转换为int型(同属于整型)。
3、float型数据在运算时一律转换为双精度(double)型,以提高运算精度(同属于实型)。其次,有下面的规则。
当不同类型的数据进行操作时,应当首先将其转换成相同的数据类型,然后进行操作,转换规则是由低级向高级转换。