运算符的优先级和结合性
2011-06-10 17:58
211 查看
在C++中有许多运算符,其中运算符又有优先级和结合性,可以通过以下步骤利用优先级和结合性把一个表达式一层层划分好用于运算:
1.首先从表达式从左到右看都有哪些运算符,从优先级最高的运算符开始以运算符为界把表达式换分为两个子式,每个子式可以用括弧分开以明确各个部分
2.然后遇到相同优先级的运算符时候就要考虑其结合性了,看是先运算左边还是右边。C++Primer上说:其实在一般情况下,相同优先级的运算次序求解操作数通常没有多大关系,只有当操作符的两个操作数涉及到同一个对象并改变其值时候,操作数的计算次序才会影响结果。我理解的运算符的结合性就是当遇到这个操作符时候的运算次序,是从左向右还是从右向左。(但是C++primer上说,当遇到上述情况时候C++语言不能保证从左向右的运算次序是以< 为例说明的,然后建议以一种安全且独立于机器的方式重写表达式,测试过了确实对这种情况C++没有明确定义)
3.自增自减运算符的前置运算和后置运算,当前置时候++k是先把k值加1然后使用k,后置时候k++是先使用k然后把k值加1,这是由前后置运算决定的,跟其结合性没有关系。
1.首先从表达式从左到右看都有哪些运算符,从优先级最高的运算符开始以运算符为界把表达式换分为两个子式,每个子式可以用括弧分开以明确各个部分
2.然后遇到相同优先级的运算符时候就要考虑其结合性了,看是先运算左边还是右边。C++Primer上说:其实在一般情况下,相同优先级的运算次序求解操作数通常没有多大关系,只有当操作符的两个操作数涉及到同一个对象并改变其值时候,操作数的计算次序才会影响结果。我理解的运算符的结合性就是当遇到这个操作符时候的运算次序,是从左向右还是从右向左。(但是C++primer上说,当遇到上述情况时候C++语言不能保证从左向右的运算次序是以< 为例说明的,然后建议以一种安全且独立于机器的方式重写表达式,测试过了确实对这种情况C++没有明确定义)
3.自增自减运算符的前置运算和后置运算,当前置时候++k是先把k值加1然后使用k,后置时候k++是先使用k然后把k值加1,这是由前后置运算决定的,跟其结合性没有关系。
相关文章推荐
- 第03天C语言(01):运算符的优先级以及结合性
- 运算符结合性与优先级
- 算术运算符和算术表达式(优先级,结合性等)
- 运算符的优先级和结合性
- JAVA的各种运算符,优先级与结合性
- C语言运算符的优先级和结合性一览表
- java运算符的结合性和优先级
- C之旅(一)运算符——优先级,结合性和求值顺序
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 运算符的优先级和结合性
- c语言运算符的优先级及其结合性
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 运算符 优先级 结合性
- 运算符的优先级和结合性
- 浅谈C/C++中运算符的优先级、运算符的结合性以及操作数的求值顺序
- 运算符的优先级和结合性
- JAVA运算符的优先级与结合性
- C语言程序设计 运算符的优先级与结合性
- Linux C/C++ 运算符:种类、优先级、结合性
- C++语言运算符的功能、优先级和结合性