**在c语言中类型转换分为两类:
强制类型转换;
自动类型转换;**
例如:(float)a;//把a转换为浮点型。
这种由程序员显式进行的转换称为强制类型转换。除了强制类型转换,在不同数据类型的混合运算中编译器也会隐式地进行数据类型转换,称为自动类型转换。
自动类型转换遵循下面的规则:
1. 若参与运算的数据类型不同,则先转换成同一类型,然后进行运算。
2. 转换按数据长度增加的方向进行,以保证精度不降低。例如int型和long型运算时,先把int量转成long型后再进行运算。
3. 所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
4. char型和short型参与运算时,必须先转换成int型。
5. 在赋值运算中,赋值号两边的数据类型不同时,需要把右边表达式的类型将转换为左边变量的类型。
6. 如果右边表达式的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度。