运算符优先级

L 一扔三四点

   global scope(全局作用域)                  :: name

   class scope(类作用域)                       class :: name

   namespace scope(名字空间作用域)  class :: name

L 成员来挑选,数索函调类型造  后面加加减减类型id明显转

        member selectors(成员选择)        object . member

        member selectors(成员选择)        pointer -> member

        subscript(下标)                             variable [ expr ]

        function call(函数调用)                 name (expr_list)

       postfix increment(后自增操作)      lvalue++

       postfix decrement(后自减操作)    lvalue--

        type construction(类型构造)        type (expr_list)    type{}

  run-time type ID(运行时类型 ID)  typeid (expr)                                    

      type conversion(类型转换)            cast_name <type>(expr)  

                                                                 const_cast/dynamic_cast/reinterpret_cast/static_cast

R 前面加加减减逻辑反,单加单减增与删,取址解引得大小,位反才能类型转

        prefix increment(前自增操作)      ++lvalue

       prefix decrement(前自减操作)     -- lvalue   

       logical NOT(逻辑非)                    !expr

       unary plus(一元正号)                +expr

      unary minus(一元负号)    -expr

       allocate object(创建对象)    new type

      delete    deallocate object(释放对象)    delete expr                 

      delete[]    deallocate array(释放数组)    delete[] expr

     address-of(取地址)    &expr

   dereference(解引用)    *expr

size of type(类型的大小)    sizeof(type)

size of object(对象的大小)    sizeof expr

bitwise NOT(位求反)    ~expr

type conversion(类型转换)    (type) expr

L   成员指针来操作

ptr to member select(指向成员操作的指针)    ptr ->* ptr_to_member

ptr to member select(指向成员操作的指针)    obj .*ptr_to_member

L   乘除

    multiply(乘法)    expr * expr

    divide(除法)    expr / expr

   modulo (remainder)(求模(求余))    expr % expr

L    加减

      add(加法)    expr + expr

      subtract(减法)    expr - expr

L   左右移

       bitwise shift left(位左移)    expr << expr

       bitwise shift right(位右移)    expr >> expr

L    大于小于

        greater than(大于)    expr > expr

        less than(小于)    expr < expr

        greater than or equal(大于或等于)    expr >= expr

        less than or equal(小于或等于)    expr <= expr

L  等不等

         equality(相等)    expr == expr

         inequality(不等)    expr != expr

L   比特与

            bitwise AND(位与)    expr & expr

L   比特异或

            bitwise XOR(位异或)    expr ^ expr

L   比特或

           bitwise OR(位或)    expr | expr

L   逻辑与

            logical AND(逻辑与)    expr && expr

L   逻辑或

            logical OR(逻辑或)    expr || expr

R   条件 ?:

            conditional(条件操作)    expr ? expr : expr

R  赋值  

               assignment(赋值操作)    lvalue = expr

               *=, /=, %=,    compound assign(复合赋值操作)    lvalue += expr, etc.

              +=, -=,

              <<=, >>=,

              &=,|=, ^=          

R  扔异常

              throw exception(抛出异常)    throw expr

L   逗号来帮忙

              comma(逗号)    expr , expr

PrecedenceOperatorDescriptionAssociativity
1::Scope resolutionLeft-to-right
2a++   a--Suffix/postfix increment and decrement
type()   type{}Functional cast
a()Function call
a[]Subscript
.   ->Member access
3++a   --aPrefix increment and decrementRight-to-left
+a   -aUnary plus and minus
!   ~Logical NOT and bitwise NOT
(type)C-style cast
*aIndirection (dereference)
&aAddress-of
sizeofSize-of[note 1]
co_awaitawait-expression (C++20)
new   new[]Dynamic memory allocation
delete   delete[]Dynamic memory deallocation
4.*   ->*Pointer-to-memberLeft-to-right
5a*b   a/b   a%bMultiplication, division, and remainder
6a+b   a-bAddition and subtraction
7<<   >>Bitwise left shift and right shift
8<=>Three-way comparison operator (since C++20)
9<   <=   >   >=For relational operators < and ≤ and > and ≥ respectively
10==   !=For equality operators = and ≠ respectively
11&Bitwise AND
12^Bitwise XOR (exclusive or)
13|Bitwise OR (inclusive or)
14&&Logical AND
15||Logical OR
16a?b:cTernary conditional[note 2]Right-to-left
throwthrow operator
co_yieldyield-expression (C++20)
=Direct assignment (provided by default for C++ classes)
+=   -=Compound assignment by sum and difference
*=   /=   %=Compound assignment by product, quotient, and remainder
<<=   >>=Compound assignment by bitwise left shift and right shift
&=   ^=   |=Compound assignment by bitwise AND, XOR, and OR
17,CommaLeft-to-right

L

::

global scope(全局作用域)

:: name

p. 450

L

::

class scope(类作用域)

class :: name

p. 85

L

::

namespace scope(名字空间作用域)

namespace :: name

p. 78

L

.

member selectors(成员选择)

object . member

p. 25

L

->

member selectors(成员选择)

pointer -> member

p. 164

L

[]

subscript(下标)

variable [ expr ]

p. 113

L

()

function call(函数调用)

name (expr_list)

p. 25

L

()

type construction(类型构造)

type (expr_list)

p. 460

R

++

postfix increment(后自增操作)

lvalue++

p. 162

R

--

postfix decrement(后自减操作)

lvalue--

p. 162

R

typeid

type ID(类型 ID)

typeid (type)

p. 775

R

typeid

run-time type ID(运行时类型 ID)

typeid (expr)

p. 775

R

explicit cast(显式强制类型转换)

type conversion(类型转换)

cast_name <type>(expr)

p. 183

R

sizeof

size of object(对象的大小)

sizeof expr

p. 167

R

sizeof

size of type(类型的大小)

sizeof(type)

p. 167

R

++

prefix increment(前自增操作)

++ lvalue

p. 162

R

--

prefix decrement(前自减操作)

-- lvalue

p. 162

R

~

bitwise NOT(位求反)

~expr

p. 154

R

!

logical NOT(逻辑非)

!expr

p. 152

R

-

unary minus(一元负号)

-expr

p. 150

R

+

unary plus(一元正号)

+expr

p. 150

R

*

dereference(解引用)

*expr

p. 119

R

&

address-of(取地址)

&expr

p. 115

R

()

type conversion(类型转换)

(type) expr

p. 186

R

new

allocate object(创建对象)

new type

p. 174

R

delete

deallocate object(释放对象)

delete expr

p. 176

R

delete[]

deallocate array(释放数组)

delete[] expr

p. 137

L

->*

ptr to member select(指向成员操作的指针)

ptr ->* ptr_to_member

p. 783

L

.*

ptr to member select(指向成员操作的指针)

obj .*ptr_to_member

p. 783

L

*

multiply(乘法)

expr * expr

p. 149

L

/

divide(除法)

expr / expr

p. 149

L

%

modulo (remainder)(求模(求余))

expr % expr

p. 149

L

+

add(加法)

expr + expr

p. 149

L

-

subtract(减法)

expr - expr

p. 149

L

<<

bitwise shift left(位左移)

expr << expr

p. 154

L

>>

bitwise shift right(位右移)

expr >> expr

p. 154

L

<

less than(小于)

expr < expr

p. 152

L

<=

less than or equal(小于或等于)

expr <= expr

p. 152

L

>

greater than(大于)

expr > expr

p. 152

L

>=

greater than or equal(大于或等于)

expr >= expr

p. 152

L

==

equality(相等)

expr == expr

p. 152

L

!=

inequality(不等)

expr != expr

p. 152

L

&

bitwise AND(位与)

expr & expr

p. 154

L

^

bitwise XOR()

expr ^ expr

p. 154

L

|

bitwise OR(位异或)

expr | expr

p. 154

L

&&

logical AND(逻辑与)

expr && expr

p. 152

L

||

logical OR(逻辑或)

expr || expr

p. 152

R

?:

conditional(条件操作)

expr ? expr : expr

p. 165

R

=

assignment(赋值操作)

lvalue = expr

p. 159

R

*=, /=, %=,

compound assign(复合赋值操作)

lvalue += expr, etc.

p. 159

R

+=, -=,

p. 159

R

<<=, >>=,

p. 159

R

&=,|=, ^=

p. 159

R

throw

throw exception(抛出异常)

throw expr

p. 216

L

,

comma(逗号)

expr , expr

p. 168

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值