C 運算子優先順序

2021-06-20 04:21:09 字數 2400 閱讀 3866

c++運算子的優先順序共分為16級,理解記憶如下:

首先記憶四個大的層次:域天鬥地單先賦值後

·域限定(::)優先順序最高,逗號運算子優先順序最低(兩個特殊級別)

·單目運算子優先順序第二高,賦值運算子第二低(理解:單目運算必須完成後才可能參與雙目運算,所以優先順序當然較高;賦值操作需要等表示式其他部分得到結果後再進行,優先順序自然較低)

·(其餘運算子優先順序排中間)

接下來把大的層次展開一下:

單目運算子

字尾運算子優先,字首次之(兩個層次)

字尾運算子中包括:成員括號後增減

成員運算子:.及->。理解:看到myclass.abc、p->***.yyy可以理解為乙個變數標識整體

括號:包括()及。這裡()是指函式呼叫的括號,是下標運算子。

後增減:字尾形式的++、--。

字首運算子中包括:正負非指先增減,創刪大小與轉換

其他運算子下表取自

level

precedence group

operator

description

grouping

1scope

::scope qualifier

left-to-right

2postfix (unary)

++ --postfix increment / decrement

left-to-right

()functional forms

subscript

. ->member access

3prefix (unary)

++ --prefix increment / decrement

right-to-left

~ !bitwise not / logical not

+ -unary prefix

& *reference / dereference

new deleteallocation / deallocation

sizeofparameter pack

(type)c-style type-casting

4pointer-to-member

.* ->*access pointer

left-to-right

5arithmetic: scaling

* / %multiply, divide, modulo

left-to-right

6arithmetic: addition

+ -addition, subtraction

left-to-right

7bitwise shift

<< >>shift left, shift right

left-to-right

8relational

< > <= >=comparison operators

left-to-right

9equality

== !=equality / inequality

left-to-right

10and

&bitwise and

left-to-right

11exclusive or

^bitwise xor

left-to-right

12inclusive or

|bitwise or

left-to-right

13conjunction

&&logical and

left-to-right

14disjunction

||logical or

left-to-right

15assignment-level expressions

= *= /= %= += -=

>>= <<= &= ^= |=assignment / compound assignment

right-to-left

?:conditional operator

16sequencing

,comma separator

left-to-right

運算子優先順序 C 運算子優先順序

c 運算子優先順序 優先順序運算子 描述方向1 scope resolution 範圍解析 left to right 2 suffix postfix increment and decrement 字首 字尾遞增和遞減 function call 函式呼叫 array subscripting ...

運算子優先順序 Python 運算子優先順序

python 運算子優先順序 運算子描述 lambda lambda表示式 or布林 或 and布林 與 not x 布林 非 in,not in 成員測試 is,is not 同一性測試 比較 按位或 按位異或 按位與 移位 加法與減法 乘法 除法與取餘 x,x 正負號 x 按位翻轉 指數 x.a...

運算子優先順序 PHP運算子優先順序

php運算子優先順序 結合方向 運算子附加資訊 非結合clone new clone 和 new左 array 非結合 遞增 遞減運算子 非結合 int float string array object bool 型別非結合 instanceof 型別右結合 邏輯操作符 左 算術運算子 左 算術運...