運算子優先順序和關聯性

2021-06-21 11:40:00 字數 2078 閱讀 2676

c++ 語言包括所有 c 運算子並新增多個新的運算子。 

運算子指定對下列項之一執行計算:

運算子遵循嚴格的優先順序,該優先順序定義了包含這些運算子的表示式的計算順序。 

運算子與其左側或右側的表示式關聯;這稱為「關聯性」。下表顯示 c++ 運算子的優先順序和關聯性(從最高優先順序到最低優先順序)。

表的同一段中的運算子具有相同的優先順序,這些運算子在表示式中按給定順序進行計算(除非括號明確強制執行計算)。

c++ 運算子的優先順序和關聯性

運算子名稱或含義

結合性 ::

範圍解析 無

. 成員選定內容(物件)

從左到右

–>

成員選定內容(指標)

從左到右

[ ]陣列下標

從左到右

( )函式呼叫成員初始化

從左到右 ++

字尾遞增

從左到右 ––

字尾遞減

從左到右

typeid( )

型別名稱

從左到右

const_cast

型別轉換**換)

從左到右

dynamic_cast

型別轉換**換)

從左到右

reinterpret_cast

型別轉換**換)

從左到右

static_cast

型別轉換**換)

從左到右

sizeof

物件或型別的大小

從右到左 ++

字首遞增

從右到左 ––

字首遞減

從右到左 ~

二進位制反碼

從右到左 !

邏輯「非」

從右到左 –

一元負從右到左 +

一元加從右到左 &

address-of

從右到左 *

間接定址

從右到左

new建立物件

從右到左

delete

銷毀物件

從右到左

( )cast

從右到左

.* 指向成員的指標(物件)

從左到右

–>*

指向成員的指標(指標)

從左到右

* 乘法

從左到右 /

除法從左到右 %

取模從左到右

+ 新增

從左到右 –

減法從左到右

<< 左移

從左到右

>> 右移

從左到右

< 小於

從左到右

> 大於

從左到右

<=

小於或等於

從左到右

>=

大於或等於

從左到右

== 相等

從左到右 !=

不相等從左到右

& 按位「與」

從左到右

^ 按位「異或」

從左到右

| 按位「與或」

從左到右

&& 邏輯「與」

從左到右

|| 邏輯「或」

從左到右

expr1

? expr2

: expr3

條件運算

從右到左

= 賦值

從右到左 *=

乘法賦值

從右到左 /=

除法賦值

從右到左 %=

取模賦值

從右到左 +=

加法賦值

從右到左 –=

減法賦值

從右到左

<<=

左移賦值

從右到左

>>=

右移賦值

從右到左 &=

按位「與」賦值

從右到左 |=

按位「與或」賦值

從右到左 ^=

按位「異或」賦值

從右到左

throw 

expr

引發表示式

從右到左

, 逗號

從左到右

運算子優先順序和結合性

所謂優先順序就是當乙個表示式中有多個運算子時,先計算誰,後計算誰。這個其實我們在小學學算術的時候就學過,如1 4 2。但是c語言中的運算子已經遠不止四則運算中的加減乘除了,還有其他很多運算子。當它們出現在同乙個表示式中時先計算誰後計算誰呢?所以本節還是有必要講一下的。最後我還會將所有運算子展示出來,...

運算子優先順序和結合性

優先順序 運算子含義 運算物件個數 結合順序1 初等運算子 自左至右 下標運算子 指向結構體成員運算子 結構體成員運算子2!單目運算子 1 單目運算子 自右至左 負號 指標運算子 sizeof 型別 型別轉換運算子3 乘法算數運算子 2 雙目運算子 自左至右 4 2 雙目運算子 自左至右 5 2 雙...

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

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