您的位置:首页 > 其它

运算符的优先级和结合性

2011-06-10 17:58 211 查看
在C++中有许多运算符,其中运算符又有优先级和结合性,可以通过以下步骤利用优先级和结合性把一个表达式一层层划分好用于运算:

1.首先从表达式从左到右看都有哪些运算符,从优先级最高的运算符开始以运算符为界把表达式换分为两个子式,每个子式可以用括弧分开以明确各个部分

2.然后遇到相同优先级的运算符时候就要考虑其结合性了,看是先运算左边还是右边。C++Primer上说:其实在一般情况下,相同优先级的运算次序求解操作数通常没有多大关系,只有当操作符的两个操作数涉及到同一个对象并改变其值时候,操作数的计算次序才会影响结果。我理解的运算符的结合性就是当遇到这个操作符时候的运算次序,是从左向右还是从右向左。(但是C++primer上说,当遇到上述情况时候C++语言不能保证从左向右的运算次序是以< 为例说明的,然后建议以一种安全且独立于机器的方式重写表达式,测试过了确实对这种情况C++没有明确定义)

3.自增自减运算符的前置运算和后置运算,当前置时候++k是先把k值加1然后使用k,后置时候k++是先使用k然后把k值加1,这是由前后置运算决定的,跟其结合性没有关系。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: