类型转换分类:若参与运算的量类型不同,则先转成同一类型再进行计算,分为隐式转换和显示转换。
①隐式转换:由编译器完成。
C语言规定转换规则是由低级向高级转换。
注:赋值运算时,如两边类型不同,将自动转换为和左边相同的类型。
②显示转换:又叫强制类型转换。直接在要转换的数据前面用小括号加需要转换成的类型。一般形式为:(类型名)表达式;
如: a = ( int )7.6; //表示把7.6强转成整型,结果为7。
int sum = 0;
sum = 1.6 + 1.7; //3.3转成整型结果为3
sum = (int)1.6 + (int)1.7; //先强制转换,变成1 + 1 = 2
无论是强制转换还是自动转换,都只是为了本次运算的需要对变量的数据长度进行临时性转换,而不改变数据说明时对该变量定义的类型。
转换规则:为确保计算精度,按数据长度增加的方向进行(如上图)。
注:浮点型运算都是按双精度进行的,即使两个单精度的float数据也要先转成double型数据再进行计算;char型和short型进行计算时,都要先转成int型数据。