演算子

演算子の優先順位

演算子 名称と意味 結合規則 C++固有
:: スコープ解決 なし
:: グローバル なし
[ ] 配列の添字付け 左→右  
( ) 関数の呼び出し 左→右  
( ) 変換 なし  
. メンバ選択 (オブジェクト) 左→右  
-> メンバ選択 (ポインタ) 左→右  
++ 後置インクリメント なし  
-- 後置デクリメント なし  
new 動的なメモリ割り当て なし
delete 動的に割り当てたメモリ領域の解放 なし
new[ ] 動的な配列の割り当て なし
delete[ ] 動的に割り当てた配列領域の解放 なし
++ 前置インクリメント なし  
-- 前置デクリメント なし  
* 間接演算子 (参照) なし  
& アドレス演算子 なし  
+ 正符号 なし  
- 負符号 なし  
! 論理NOT なし  
~ ビットごとの補数 なし  
sizeof sizeof演算子 なし  
typeid( ) 型名 なし
(type) cast演算子 (型キャスト) 左←右  
const_cast const、volatile属性を変更するキャスト なし
dynamic_cast ポリモーフィックな型の安全な型キャスト なし
reinterpret_cast ビット構成の解釈を変更するキャスト なし
static_cast 非ポリモーフィックな型の標準変換を行うキャスト なし
.* メンバオブジェクトへのポインタ 左→右
->* ポインタオブジェクトへのポインタ 左→右
* 乗算 左→右  
/ 除算 左→右  
% 剰余 左→右  
+ 加算 左→右  
- 減算 左→右  
<< 左シフト 左→右  
>> 右シフト 左→右  
< 小なり 左→右  
> 大なり 左→右  
<= 以下 左→右  
>= 以上 左→右  
== 等価 左→右  
!= 不等価 左→右  
& ビットごとの AND 左→右  
^ ビットごとの 排他的OR 左→右  
| ビットごとの OR 左→右  
&& 論理 AND 左→右  
|| 論理 OR 左→右  
e1? e2: e3 条件 左←右  
= 代入演算子 左←右  
*= 乗算代入 左←右  
/= 除算代入 左←右  
%= 剰余代入 左←右  
+= 加算代入 左←右  
-= 減算代入 左←右  
<<= 左シフト代入 左←右  
>>= 右シフト代入 左←右  
&= ビットごとの AND代入 左←右  
|= ビットごとの OR代入 左←右  
^= ビットごとの 排他的OR代入 左←右  
, カンマ (式と式の区切りなど) 左→右