零基础学C语言程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.6 运算符总结

上面我们已经学习了多个C语言的运算符,为了更好地学习理解这些内容,本节将对运算符进行总结。

3.6.1 运算符优先级汇总

运算符优先级决定了计算机的运算顺序。只有正确使用运算符,才能保证计算机的正确识别和运算。运算符优先级汇总如表3.8所示。

表3.8 运算符优先级汇总

续表

3.6.2 数据类型转换规则

在C语言中,当对操作数进行计算或存储时,都要保证所有操作数的数据类型相同。如果操作数的数据类型不同,就要对操作数进行数据类型转换。在对操作数进行数据类型转换时,一定要注意以下规则。

(1)如果参与运算的操作数的数据类型不同,则要先将其转换成同一个数据类型,才能进行运算。

(2)必须是所占存储单元少的数据类型向所占存储单元多的数据类型转换,并保证数据类型转换后的数据精度不降低。这就好比一般要将房子换成更大的房子,而不要换成更小房子一样。

(3)若两种数据类型所占的字节数相同,且一种数据类型有符号,另一种数据类型无符号,则要将有符号数据类型转换成无符号数据类型。

(4)所有的小数运算都是以双精度类型进行的。

(5)当char类型和short类型数据参与运算时,必须将它们都转换成int类型后再进行运算。

(6)在赋值运算中,当赋值运算符两边操作数的数据类型不同时,计算机会自动将右边操作数的数据类型转换为左边操作数的数据类型。在这个转换过程中,如果左边操作数所占存储单元少于右侧操作数所占存储单元,则会降低转换后数据的精度,并丢失部分数据。

(7)数据类型在强制转换时,要注意强制转换后的数据所占存储单元的多少,避免存储时数据发生溢出,造成数据丢失。

在C语言的中,数据型转换方向如图3.32所示。

图3.32 数据类型转换方向