编程词典
明日图书
明日软件
用户注册
用户登录
站内
  当前位置:编程词典服务网 >> 编程词典社区论坛 >> 结合性与优先级
  · 结合性与优先级

用户:  大麦
发帖:  430 篇
作品:  0 个
回复:  110 篇
技术分:  1160 分
等级:  
注册:  2010-05-11 09:09:40



发表于:2010-07-10 15:26:38
          楼主

结合性与优先级
运算符具有结合性和优先级两个属性,这两个属性描述的语句的执行顺序。所谓结合性是指表达式的整体计算方向,即从左向右或从右向左。以“int iret = x + y + z;”语句为例,由于算术运算符的结合性从左向右,即表达式的整体计算方向从左向右。因此语句中“x + y + z”的计算方式首先计算“x + y”,然后结果再与“z”相加。而赋值运算符的计算方向是从右向左,即将右边的结果赋值给左边,因此将“x + y + z”的结果赋值为iret,而不是将iret赋值给“x + y +z”。优先级表示的是运算符的优先执行顺序。在数学中表达式“x + y * z”的计算方式是先计算“y * z”,然后将结果与“x”相加。在计算机中,为了符合人们的计算习惯,同样规定了*运算符的优先级高于+运算符,因此,表达式“x + y * z”在程序中的执行顺序与在人们在数学中的计算方式是相同的。表1描述了C++运算符的优先级和结合性。
表1C++运算符优先级和结合性

运算符

描述

优先级

结合性

()

圆括号

1

从左向右

[]

下标符号

->

对象或结构体指针运算符

.

对象或结构体对象运算符

!

逻辑非运算

2

从右向左

~

按位取反运算符

++

自增运算符

--

自减运算符

-

负号运算符

*

指针运算符

&

取地址运算符

sizeof

长度运算符

*

乘法运算符

3

从左向右

/

除法运算符

%

求余运算符

+

加法运算符

4

从左向右

-

减法运算符

<< 

左移运算符

5

从左向右

>> 

右移运算符

< 

关系运算符 大于

6

从左向右

<=

关系运算符 大于等于

> 

关系运算符 小于

>=

关系运算符 小于等于

==

关系运算符 等于

7

从左向右

!=

关系运算符 不等于

&

按位与运算符

8

从左向右

^

按位异或运算符

9

从左向右

|

按位或运算符

10

从左向右

&&

逻辑与运算符

11

从左向右

||

逻辑或运算符

12

从左向右

?

三目元条件运算符

13

从右向左

:

三目元条件运算符

=

赋值运算符

14

从左向右

+=

-=

*=

/=

%=

>>=

<<=

&=

^=

|=

,

逗号运算符

15

从左向右


 说明:在同一个表达式中,同一优先级的运算符,运算次序由结合性决定。

 

本帖赏分:0 分   回复数:0 篇     
修改   删除   引用   回复
该帖暂无回复!
吉林省明日科技有限公司提供技术支持. 
Copyright © 1999-2008 吉林省明日科技有限公司. 吉ICP备10002740
当前时区 GMT+8, 今天是 
刷新页面 - 关于我们 - 设为首页