2022年9月4日星期日

C++運算子優先權

 

C++ 運算子的優先權


在開發程式時,最簡單也最容易被忽略的部分,運算子的優先權,在一些算式或是指標操作,如果沒有仔細去使用,容易讓預期結果與實際結果不同,因此整理一下並記錄在這裡。

運算子

順序

意義

第一類

 

 

::

 

範疇運算子

第二類

 

 

()

->

分組

[]

 

陣列足標

->

 

間接成員運算子

.

 

直接成員運算子

const_cast

 

特定型態轉換

dynamic_cast

 

特定型態轉換

reinterpret_cast

 

特定型態轉換

static_cast

 

特定型態轉換

typeid

 

型態識別

++

 

遞增運算子,後置形式

--

 

遞減運算子,後置形式

第三類

 

 

!

->

邏輯否定

~

 

位元否定

+

 

一元加號

-

 

一元減號

++

 

遞增運算子,前置形式

--

 

遞增運算子,前置形式

&

 

取址

*

 

提領(間接值)

()

 

型態轉換

sizeof

 

詢問變數多少個byte

Alignof

 

對齊

new

 

動態配置儲存空間

new []

 

動態配置陣列

delete

 

動態釋放儲存空間

delete[]

 

動態釋放陣列

noexcept

 

若運算元丟出異常,則為假

第四類優先權

 

 

.*

->

成員提領

->*

 

間接成員提領

第五類優先權

 

 

*

->

乘法

/

 

除法

%

 

餘數

第六類優先權

 

 

+

->

加法

-

 

減法

第七類優先權

 

 

<< 

->

左移

>> 

 

右移

第八類優先權

 

 

< 

->

小於

<=

 

小於等於

>=

 

大於等於

> 

 

大於

第九類優先權

 

 

==

 

 

!=

 

 

第十類優先權

 

 

&

->

位元AND

第十一類優先權

 

 

^

->

位元XOR

第十二類優先權

 

 

|

->

位元OR

第十三類優先權

 

 

&&

->

位元AND

第十四類優先權

 

 

||

->

邏輯OR

第十五類優先權

 

 

:?

->

條件式

第十六類優先權

 

 

=

->

簡單指定

*=

 

乘法並指定

/=

 

除法並指定

%=

 

取餘數並指定

+=

 

加法並指定

-=

 

減法並指定

&=

 

位元AND並指定

^=

 

位元XOR並指定

|=

 

位元OR並指定

<<=

 

 

>>=

 

 

第十七類優先權

 

 

throw

->

丟出異常

第十八類優先權

 

 

,

->

結合兩個運算式為一個


沒有留言:

發佈留言

打賞按讚