C编程从入门到实践
上QQ阅读APP看书,第一时间看更新

5.1.2 运算符的优先级

优先级,即处理的先后顺序。在日常生活中,无论是排队买票还是超市结账,我们都遵循先来后到的顺序。在C语言运算中,也要遵循某种运算秩序。C语言运算符的优先级共分为15级,1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。当一个运算符号两侧的运算符优先级相同时,则按运算符结合性所规定的结合方向来处理。

如果属于同级运算符,则按照运算符结合性的方向来处理。在C语言中各运算符的结合性可以分为如下两种。

❑ 左结合性:从左至右进行运算。

❑ 右结合性:从右至左进行运算。

例如,算术运算符的结合性是从左至右的,即先左后右。如有表达式x-y+z则y应先与“-”结合,执行x-y运算,然后再执行+z的运算。这种从左至右的结合称为“左结合性”。而从右至左的结合方向称为“右结合性”。最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”具有右结合性,所以应先执行y=z再执行x=(y=z)运算。

C语言运算符有不少为右结合性,应注意区别,以避免理解错误。

C语言运算符优先级的具体说明如表5-1所示。

表5-1 C语言运算符的优先级