C语言自动类型转换
当参与运算的数据的类型不同时,编译系统会自动先将它们转换成同一类型,然后再进行运算。
有以下四点需要注意
-
转换的基本规则是“按数据长度增加的方向进行转换”,以保证精度不降低。比如 int 型数据和 long 型数据进行相加或相减运算时,系统会先将 int 型数据转换成 long 型,然后再进行运算。这样的话运算结果的精度就不会降低。
-
所有的浮点运算都是以双精度进行的。运算时,程序中所有的 float 型数据全部都会先转换成 double 型。即使只有一个 float型数据,也会先转换成 double 型,然后再进行运算。**
-
char 型和 short 型数据参与运算时,必须先转换成 int 型。
-
有符号整型和无符号整型混合运算时,有符号型要转换成无符号型,运算的结果是无符号的。