This page will be updated to reflect what you should know from this table. The operators that you have to know how to use have a white background. This page was last updated on 6/5/08.
Level | Operator | Description | Associativity |
---|---|---|---|
0 | :: | scope resolution | Left to Right |
1 | ++ | post-increment | Left to Right |
-- | post-decrement | ||
() | function call | ||
[] | array subscripting | ||
. | member selection via reference | ||
-> | member selection via pointer | ||
typeid() | run-time type info | ||
const_cast | type cast | ||
dynamic_cast | type cast | ||
reinterpret_cast | type cast | ||
static_cast | type cast | ||
2 | ++ | pre-increment | Right to Left |
-- | pre-decrement | ||
+ | unary plus | ||
- | unary minus | ||
! | logical NOT | ||
~ | bitwise NOT | ||
(type) | type cast | ||
* | dereference | ||
& | address-of | ||
sizeof | size-of | ||
new | dynamic memory allocation | ||
new[] | dynamic array memory allocation | ||
delete | dynamic memory deallocation | ||
delete[] | dynamic array memory deallocation | ||
3 | .* | pointer to member using reference | Left to Right |
->* | pointer to member using pointer | ||
4 | * | multiplication | Left to Right |
/ | division | ||
% | modulus (remainder) | ||
5 | + | addition | Left to Right |
- | subtraction | ||
6 | << | bitwise left shift | Left to Right |
>> | bitwise right shift | ||
7 | < | relational: less than | Left to Right |
<= | relational: less than or equal | ||
> | relational: greater than | ||
>= | relational: greater than or equal | ||
8 | == | relational: equal | Left to Right |
!= | relational: not equal | ||
9 | & | bitwise AND | Left to Right |
10 | ^ | bitwise XOR | Left to Right |
11 | | | bitwise OR | Left to Right |
12 | && | logical AND | Left to Right |
13 | || | logical OR | Left to Right |
14 | c?t:f | conditional (ternary) | Right to Left |
15 | = | assignment | Right to Left |
+= | addition and assignment | ||
-= | subtraction and assignment | ||
*= | multiplication and assignment | ||
/= | division and assignment | ||
%= | remainder and assignment | ||
<<= | bitwise left shift and assignment | ||
>>= | bitwise right shift and assignment | ||
&= | bitwise AND and assignment | ||
^= | bitwise XOR and assignment | ||
|= | bitwise OR and assignment | ||
16 | throw | throw an exception | N/A |
17 | , | list separator | Left to Right |
C++ also includes keywords as synonyms for some operators. They are as follows:
keyword | synonym for |
---|---|
and | && |
and_eq | &= |
bitand | & |
bitor | | |
compl | ~ |
not | ! |
not_eq | != |
or | || |
or_eq | |= |
xor | ^ |
xor_eq | ^= |