在C语言中自动转换遵循以下规则:
1. 若参与的类型不同,则先转换成同一类型,然后运算;
2. 转换按数据长度增加的方向进行,以保证精度不降低。如int类型和long类型运算时,先把int类型数据转成long类型数据,然后进行运算;
3. 所有的浮点运算都是以双精度进行的,即使仅含float单精度运算的表达式,也先转换才double类型,再作运算;
4. char类型和short类型参与运算时,必须先转换成int类型;
5. 在赋值运算中,无论赋值符右侧的类型如何,都将转换成左侧变量的类型。若右侧数据精度具有较高等级,则将被截短或舍入,使结果与左侧变量的类型相同。