C++操作符优先级

C++操作符的优先级 

操作符及其结合性 

功能 

用法 

L
L
L

::
::
::

全局作用域 
类作用域 
名字空间作用域 

::name
class::name
namespace::name

L
L
L
L
L

.
->
[]
()
()

成员选择 
成员选择 
下标 
函数调用 
类型构造 

object.member
pointer->member
variable[expr]
name(expr_list)
type(expr_list)

R
R
R
R
R

++
--
typeid
typeid
显示强制类型转换 

后自增操作 
后自减操作 
类型ID
运行时类型ID
类型转换 

lvalue++
lvalue--
typeid(type)
typeid(expr)
cast_name<type>(expr)

R
R
R
R
R
R
R
R
R
R
R
R
R
R

sizeof
sizeof
++
--
~
!
-
+
*
&
()
new
delete
delete[]

对象的大小 
类型的大小 
前自增操作 
前自减操作 
位求反 
逻辑非 
一元负号 
一元正号 
解引用 
取地址 
类型转换 
创建对象 
释放对象 
释放数组 

sizeof expr
sizeof(type)
++lvalue
--lvalue
~expr
!expr
-expr
+expr
*expr
&expr
(type)expr
new type
delete expr
delete []expr

L
L

->*
.*

指向成员操作的指针 
指向成员操作的指针 

ptr->*ptr_to_member
obj.*ptr_to_member

L
L
L

*
/
%

乘法 
除法 
求模(求余) 

expr * expr
expr / expr
expr % expr

L
L

+
-

加法 
减法 

expr + expr
expr - expr

L
L

<< 
>> 

位左移 
位右移

expr << expr
expr >> expr

L
L
L
L


<=

>=

小于 
小于或等于 
大于 
大于或等于 

expr < expr
expr <= expr
expr > expr
expr >= expr

L
R

==
!=

相等 
不等 

Expr == expr
Expr != expr

R

&

位与 

Expr & expr

R

^

位异或 

Expr ^ expr

R

|

位或 

Expr | expr

R

&&

逻辑与 

Expr && expr

R

||

逻辑或 

Expr || expr

R

?:

条件操作 

Expr ? expr : expr

R
R
R
R
R

=
*=,/=,%=
+=,-=
<<=,>>=
&=,|=,^=

赋值操作 
符合赋值操作 

Lvalue= expr
Lvalue+= expr
…… 

R

throw

抛出异常 

Throw expr

L

,

逗号 

Expr, expr

记忆方法:

--摘自《C语言程序设计实用问答》     -吕凤翥     吕     涛著   
    问题:如何记住运算符的15种优先级和结合性?   
    解答:C语言中运算符种类比较繁多,优先级有15种,结合性有两种。   
    如何记忆两种结合性和15种优先级?下面讲述一种记忆方法。   
    结合性有两种,一种是自左至右,另一种是自右至左,大部分运算符的结合性是自左至右,只有单目运算符、三目运算符的赋值运算符的结合性自右至左。   
    优先级有15种。记忆方法如下:   
    记住一个最高的:构造类型的元素或成员以及小括号。   
    记住一个最低的:逗号运算符。   
    剩余的是一、二、三、赋值。   
    意思是单目、双目、三目和赋值运算符。   
    在诸多运算符中,又分为:   
    算术、关系、逻辑。   
    两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。再细分如下:   
    算术运算符分     *,/,%高于+,-。   
    关系运算符中,》,》=,《,〈=高于==,!=。   
    逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。   
    逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。   
    这样就将15种优先级都记住了,再将记忆方法总结如下:   
    去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值