It is important to understand that operators have a precedence, but it is not essential to memorize the precedence.
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 | , |