表达式的优先级/结合性/求值顺序

来源:互联网 发布:linux 恢复挂起 编辑:程序博客网 时间:2024/05/16 01:19

涉及到表达式,就不得不提C++中表达式中的三个问题:优先级、结合性、求值顺序。

(当然,以上三个问题主要是针对复合表达式来的,比如“6 + 3 * 4 / 2 + 2”,甚至更具体点是针对复合表达式中的操作符来的。)

 

优先级,制约着一个复合表达式求值时如何对其包含的操作数分组。

分组的依据就是某个操作符的优先级的高低,分组之后的子表达式同样具有该操作符的优先级。

优先级越高越早被计算求值。

 

结合性,制约着具有相同优先级的操作符如何分组。

 

求值顺序,以什么次序求解操作数通常没有多大关系,只是当操作符的两个操作数涉及同一个对象并改变其值时,操作数的计算次序才会影响结果。

C++中规定了操作数计算顺序的操作符有:&&(与)、||(或)、?:(条件操作符)。除此之外,其他操作符并未指定求值顺序。

 

另外,括号操作符无视以上任何规则!

原创粉丝点击