Appendix A

Operator Precedence

It is important to understand that operators have a precedence, but it is not essential to memorize the precedence.


New Term: Precedence is the order in which a program performs the operations in a formula. If one operator has precedence over another operator, it is evaluated first.

Higher precedence operators "bind tighter" than lower precedence operators; thus, higher precedence operators are evaluated first. The lower the rank in the following chart, the higher the precedence.

Table A.1. Operator Precedence.
Rank Name Operator
1 scope resolution ::
2 member selection, subscripting, . ->
function calls, postfix increment ()
and decrement ++ --
3 sizeof, prefix increment and decrement, ++ --
complement, and, not, unary minus and plus, ^ !
address of and dereference, new, new[], delete, - +
delete[], casting, sizeof(), & *
()
4 member selection for pointer .* ->*
5 multiply, divide, modulo * / %
6 add, subtract + -
7 shift << >>
8 inequality relational < <= > >=
9 equality, inequality == !=
10 bitwise AND &
11 bitwise exclusive OR ^
12 bitwise OR |
13 logical AND &&
14 logical OR ||
15 conditional ?:
16 assignment operators = *= /= %=
+= -= <<= >>=
&= |= ^=
17 throw operator throw
18 comma ,