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 | 左->右 | 丟出異常 |
第十八類優先權 |
|
|
, | 左->右 | 結合兩個運算式為一個 |
沒有留言:
發佈留言