演算子の優先順位と結合規則

C++ 言語が C の演算子が含まれいくつかの新しい演算子を追加します。演算子は次のいずれかで実行される評価を指定します :

  • 1 番目のオペランド (単項演算子)

  • 2 番目のオペランド (二項演算子)

  • 3 番目のオペランド (三項演算子)

演算子はこれらの演算子を含む式の評価順序を定義する厳密な優先順位に従っています。演算子は左の式やその右側の式に関連付ける ; これが呼び出されます」。と 「結合規則次の表はC++ の演算子の優先順位と結合規則を示しています (最も高いものから低いもの)。かっこで明示的に変換するテーブルの同じセグメントの演算子の優先順位に差は式の順序で評価されます。

C++ の演算子の優先順位と結合規則

[演算子]

名前です。

結合規則

::

スコープ解決

なし

 

 

 

.

メンバーの選択 (オブジェクト)

左から右

–>

メンバーの選択 (ポインター)

左から右

[ ]

配列の添字

左から右

( )

関数呼び出しのメンバーの初期化

左から右

++

後置インクリメント

左から右

––

後置デクリメント

左から右

typeid( )

型名

左から右

const_cast

型変換 (キャスト)

左から右

dynamic_cast

型変換 (キャスト)

左から右

reinterpret_cast

型変換 (キャスト)

左から右

static_cast

型変換 (キャスト)

左から右

 

 

 

sizeof

オブジェクトや型のサイズ

右から左

++

前置インクリメント

右から左

––

前置デクリメント

右から左

~

1 の補数

右から左

!

論理 NOT

右から左

単項

右から左

+

と単項

右から左

&

Address

右から左

*

間接

右から左

new

オブジェクトを作成します。

右から左

delete

オブジェクトの破棄

右から左

( )

Cast

右から左

 

 

 

.*

メンバーへのポインター (オブジェクト)

左から右

–>*

メンバーへのポインター ()

左から右

 

 

 

*

乗算

左から右

/

除算

左から右

%

剰余

左から右

 

 

 

+

加算

左から右

減算

左から右

 

 

 

<<

左シフト

左から右

>>

右シフト

左から右

 

 

 

<

より小さい

左から右

>

より大きい

左から右

<=

以下

左から右

>=

以上

左から右

 

 

 

==

等価比較

左から右

!=

非等値

左から右

 

 

 

&

ビットごとの AND

左から右

 

 

 

^

ビットごとの排他的 OR

左から右

 

 

 

|

ビットごとの包括的 OR

左から右

 

 

 

&&

論理 AND

左から右

 

 

 

||

論理 OR

左から右

 

 

 

expr1 ? expr2 : expr3

条件

右から左

 

 

 

=

代入

右から左

*=

乗算代入

右から左

/=

除算代入

右から左

%=

残りの割り当て

右から左

+=

加算代入

右から左

–=

減算代入

右から左

<<=

左シフト代入

右から左

>>=

右シフト代入

右から左

&=

ビットごとの AND 代入

右から左

|=

ビットごとの包括的 OR 代入

右から左

^=

ビットごとの排他的 OR 代入

右から左

 

 

 

throwexpr

throw 式

右から左

 

 

 

,

コンマ

左から右

参照

関連項目

C++ の演算子

演算子のオーバーロード