C++ の組み込み演算子、優先順位と結合規則C++ Built-in Operators, Precedence and Associativity

C++ 言語には、C のすべての演算子が含まれており、いくつかの新しい演算子が追加されています。The C++ language includes all C operators and adds several new operators. 演算子により、1 つまたは複数のオペランドに対して実行される評価が決まります。Operators specify an evaluation to be performed on one or more operands.

演算子優先順位を 1 つ以上の演算子を含む式での操作の順序を指定します。Operator precedence specifies the order of operations in expressions that contain more than one operator. 演算子結合規則を優先順位が同じ複数の演算子を含む式でオペランドがグループかどうかは、左に 1 つまたはその右に 1 つを指定します。Operator associativity specifies whether, in an expression that contains multiple operators with the same precedence, an operand is grouped with the one on its left or the one on its right. 次の表では、C++ の演算子の優先順位と結合規則を示しています (演算子は優先順位の高いものから低いものの順に並んでいます)。The following table shows the precedence and associativity of C++ operators (from highest to lowest precedence). 優先順位番号が同じ演算子は、別の関係がかっこで明示的に適用されない限り、同じ優先順位になります。Operators with the same precedence number have equal precedence unless another relationship is explicitly forced by parentheses.

C++ 演算子の優先順位と結合規則C++ Operator Precedence and Associativity

演算子の説明Operator Description 演算子Operator
グループのない結合規則が 1 の優先順位Group 1 precedence, no associativity
スコープ解決Scope resolution ::::
グループ 2 の優先順位、左右の結合規則からGroup 2 precedence, left to right associativity
メンバーの選択 (オブジェクトまたはポインター)Member selection (object or pointer) .または ->. or ->
配列の添字Array subscript [][]
関数呼び出しFunction call ()()
後置インクリメントPostfix increment ++
後置デクリメントPostfix decrement --
型名Type name typeidtypeid
定数の型変換Constant type conversion const_castconst_cast
動的な型変換Dynamic type conversion dynamic_castdynamic_cast
再解釈型変換Reinterpreted type conversion reinterpret_castreinterpret_cast
静的な型変換Static type conversion static_caststatic_cast
右左結合規則からのグループ 3 の優先順位Group 3 precedence, right to left associativity
オブジェクトまたは型のサイズSize of object or type sizeofsizeof
前置インクリメントPrefix increment ++
前置デクリメントPrefix decrement --
1 の補数One's complement ~
論理 notLogical not !!
単項マイナス符号Unary negation -
単項プラスUnary plus +
アドレスのAddress-of &
間接参照Indirection **
オブジェクトを作成します。Create object newnew
オブジェクトを破棄します。Destroy object deletedelete
キャストCast ()()
グループ 4 の優先順位、左右の結合規則からGroup 4 precedence, left to right associativity
メンバーへのポインター-(オブジェクトまたはポインター)Pointer-to-member (objects or pointers) .*または ->*.* or ->*
グループ 5 の優先順位、左右の結合規則からGroup 5 precedence, left to right associativity
乗算Multiplication **
除算Division /
剰余Modulus %
グループ 6 の優先順位、左右の結合規則からGroup 6 precedence, left to right associativity
加算Addition +
減算Subtraction -
グループ 7 の優先順位、左右の結合規則からGroup 7 precedence, left to right associativity
左シフトLeft shift <<
右シフトRight shift >>
8 のグループの優先順位、左右の結合規則からGroup 8 precedence, left to right associativity
より小さいLess than <
より大きいGreater than >
以下Less than or equal to <=
以上Greater than or equal to >=
9 のグループの優先順位、左右の結合規則からGroup 9 precedence, left to right associativity
等価Equality ==
非等価Inequality !=!=
10 のグループは、左右の結合規則からよりも優先されます。Group 10 precedence left to right associativity
ビットごとの ANDBitwise AND &
グループ 11 の優先順位、左右の結合規則からGroup 11 precedence, left to right associativity
ビットごとの排他的 ORBitwise exclusive OR ^
左右の結合規則から 12 の優先順位をグループ化します。Group 12 precedence, left to right associativity
ビット演算包含的 ORBitwise inclusive OR ||
グループ 13 の優先順位、左右の結合規則からGroup 13 precedence, left to right associativity
論理 ANDLogical AND &&
グループ 14 の優先順位、左右の結合規則からGroup 14 precedence, left to right associativity
論理 ORLogical OR ||||
右から左方向への 15 の優先順位をグループ化します。Group 15 precedence, right to left associativity
条件付きConditional ? :? :
右から左方向への 16 の優先順位をグループ化します。Group 16 precedence, right to left associativity
代入Assignment =
乗算代入Multiplication assignment *=*=
除算代入Division assignment /=
剰余代入Modulus assignment %=
加算代入Addition assignment +=
減算代入Subtraction assignment -=
左シフト代入Left-shift assignment <<=
右シフト代入Right-shift assignment >>=
ビットごとの AND 代入Bitwise AND assignment &=
ビット処理包括的 OR 代入Bitwise inclusive OR assignment |=|=
ビット演算子排他的 OR 代入Bitwise exclusive OR assignment ^=
右から左方向への 17 の優先順位をグループ化します。Group 17 precedence, right to left associativity
スロー式throw expression throwthrow
18 のグループの優先順位、左右の結合規則からGroup 18 precedence, left to right associativity
コンマComma ,

関連項目See also

演算子のオーバーロードOperator Overloading