首页 理论教育 C++从入门到精通:操作符优先级指南

C++从入门到精通:操作符优先级指南

时间:2023-08-20 理论教育 版权反馈
【摘要】:C++中优先级和结合性的概念和数学运算类似,对于优先级相同的操作符来说,结合性从左往右就意味着最左边的操作符先进行计算,而结合性从右往左则意味着最右边的先进行计算。表3.3.8C++操作符优先级(续上表)(续上表)表3.3.8总结了C++中所有操作符的优先级和结合性,这些操作符一共有18层级的优先级,相当复杂。动手写3.3.13动手写3.3.13展示了较为复杂的操作符优先级,笔者在注释中用括号标出了运算顺序。

C++从入门到精通:操作符优先级指南

对于一个数学算式“1+2×3-2”来说,我们知道首先计算的部分是“2×3”,这是因为乘法的优先级(Precedence)比加减法高;而对于“2×6/4”来说,乘法和除法的优先级相同,这是因为乘法和除法的结合性(Associativity)是从左往右的,所以在计算时先计算“2×6”而不是“6/4”。C++中优先级和结合性的概念和数学运算类似,对于优先级相同的操作符来说,结合性从左往右就意味着最左边的操作符先进行计算,而结合性从右往左则意味着最右边的先进行计算。此外,括号可以无视所有的优先级而使得其中的操作符先计算,这也跟数学中的概念相同。

表3.3.8 C++操作符优先级

(续上表)

(续上表)

表3.3.8总结了C++中所有操作符的优先级和结合性,这些操作符一共有18层级的优先级,相当复杂。最右边的是每个或每几个优先级的结合性。因为结合性只对同优先级的操作符才有意义,所以一个优先级只会有一种结合性。本小节只讲解其中大部分的操作符,另一小部分涉及高级内容的操作符,笔者会在之后相关的章节中进行讲解。(www.xing528.com)

动手写3.3.13

动手写3.3.13展示了较为复杂的操作符优先级,笔者在注释中用括号标出了运算顺序。我们可以看到,上述示例中乘法的优先级最高,而逻辑或的优先级最低。

动手写3.3.14

动手写3.3.14展示了从右到左的结合性,也就是右结合性的性质。运行结果c等于4,这是因为右边的赋值先操作,b等于4以后再赋值给c。如果是在左结合性的情况下,b的初始值3就会先赋值给c。

提示

在实际的编程中遇到不确定优先级的两个操作符时,建议直接使用括号自己划定优先级,这样既可以增强代码的可读性,也可以避免因优先级与预期不一样而造成的错误

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈