Operator precedencesuggest change
Operators are listed top to bottom, in descending precedence. Operators with the same number have equal precedence and the same associativity.
- The postfix operators:
- The unary prefix operators:
delete; the C-style cast notation,
(T)...; (C++11 and above)
%, binary arithmetic operators
\-, binary arithmetic operators
&, the bitwise AND operator
?:(ternary conditional operator)
,(the comma operator)
The assignment, compound assignment, and ternary conditional operators are right-associative. All other binary operators are left-associative.
The rules for the ternary conditional operator are a bit more complicated than simple precedence rules can express.
- An operand binds less tightly to a
?on its left or a
:on its right than to any other operator. Effectively, the second operand of the conditional operator is parsed as though it is parenthesized. This allows an expression such as
a ? b , c : dto be syntactically valid.
- An operand binds more tightly to a
?on its right than to an assignment operator or
throwon its left, so
a = b ? c : dis equivalent to
a = (b ? c : d)and
throw a ? b : cis equivalent to
throw (a ? b : c).
- An operand binds more tightly to an assignment operator on its right than to
:on its left, so
a ? b : c = dis equivalent to
a ? b : (c = d).