运算符优先级和关联性

31 篇文章 0 订阅

C++ 语言包括所有 C 运算符并添加多个新的运算符。 运算符指定对下列项之一执行计算:

  • 一个操作数(一元运算符)

  • 两个操作数(二元运算符)

  • 三个操作数(三元运算符)

运算符遵循严格的优先级,该优先级定义了包含这些运算符的表达式的计算顺序。 运算符与其左侧或右侧的表达式关联;这称为“关联性”。下表显示 C++ 运算符的优先级和关联性(从最高优先级到最低优先级)。 表的同一段中的运算符具有相同的优先级,这些运算符在表达式中按给定顺序进行计算(除非括号明确强制执行计算)。

C++ 运算符的优先级和关联性

运算符

名称或含义

结合性

::

范围解析

 

 

 

.

成员选定内容(对象)

从左到右

–>

成员选定内容(指针)

从左到右

[ ]

数组下标

从左到右

( )

函数调用成员初始化

从左到右

++

后缀递增

从左到右

––

后缀递减

从左到右

typeid( )

类型名称

从左到右

const_cast

类型转换(转换)

从左到右

dynamic_cast

类型转换(转换)

从左到右

reinterpret_cast

类型转换(转换)

从左到右

static_cast

类型转换(转换)

从左到右

 

 

 

sizeof

对象或类型的大小

从右到左

++

前缀递增

从右到左

––

前缀递减

从右到左

~

二进制反码

从右到左

!

逻辑“非”

从右到左

一元负

从右到左

+

一元加

从右到左

&

address-of

从右到左

*

间接寻址

从右到左

new

创建对象

从右到左

delete

销毁对象

从右到左

( )

Cast

从右到左

 

 

 

.*

指向成员的指针(对象)

从左到右

–>*

指向成员的指针(指针)

从左到右

 

 

 

*

乘法

从左到右

/

除法

从左到右

%

取模

从左到右

 

 

 

+

添加

从左到右

减法

从左到右

 

 

 

<<

左移

从左到右

>>

右移

从左到右

 

 

 

<

小于

从左到右

>

大于

从左到右

<=

小于或等于

从左到右

>=

大于或等于

从左到右

 

 

 

==

相等

从左到右

!=

不相等

从左到右

 

 

 

&

按位“与”

从左到右

 

 

 

^

按位“异或”

从左到右

 

 

 

|

按位“与或”

从左到右

 

 

 

&&

逻辑“与”

从左到右

 

 

 

||

逻辑“或”

从左到右

 

 

 

expr1 expr2 : expr3

条件运算

从右到左

 

 

 

=

赋值

从右到左

*=

乘法赋值

从右到左

/=

除法赋值

从右到左

%=

取模赋值

从右到左

+=

加法赋值

从右到左

–=

减法赋值

从右到左

<<=

左移赋值

从右到左

>>=

右移赋值

从右到左

&=

按位“与”赋值

从右到左

|=

按位“与或”赋值

从右到左

^=

按位“异或”赋值

从右到左

 

 

 

throw expr

引发表达式

从右到左

 

 

 

,

逗号

从左到右

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值