| 
| Precedence | Operator | Description | Associativity | 
|---|
 | 1 | :: | Scope resolution | Left-to-right | 
|---|
 | 2 | ++-- | Suffix/postfix increment and decrement | 
|---|
 
| () | Function call |  
| [] | Array subscripting |  
| . | Element selection by reference |  
| -> | Element selection through pointer |  | 3 | ++-- | Prefix increment and decrement | Right-to-left | 
|---|
 
| +− | Unary plus and minus |  
| !~ | Logical NOT and bitwise NOT |  
| (type) | Type cast |  
| * | Indirection (dereference) |  
| & | Address-of |  
| sizeof | Size-of |  
| new,new[] | Dynamic memory allocation |  
| delete,delete[] | Dynamic memory deallocation |  | 4 | .*->* | Pointer to member | Left-to-right | 
|---|
 | 5 | */% | Multiplication, division, and remainder | 
|---|
 | 6 | +− | Addition and subtraction | 
|---|
 | 7 | <<>> | Bitwise left shift and right shift | 
|---|
 | 8 | <<= | For relational operators < and ≤ respectively | 
|---|
 
| >>= | For relational operators > and ≥ respectively |  | 9 | ==!= | For relational = and ≠ respectively | 
|---|
 | 10 | & | Bitwise AND | 
|---|
 | 11 | ^ | Bitwise XOR (exclusive or) | 
|---|
 | 12 | | | Bitwise OR (inclusive or) | 
|---|
 | 13 | && | Logical AND | 
|---|
 | 14 | || | Logical OR | 
|---|
 | 15 | ?: | Ternary conditional | Right-to-left | 
|---|
 
| = | Direct assignment (provided by default for C++ classes) |  
| +=−= | Assignment by sum and difference |  
| *=/=%= | Assignment by product, quotient, and remainder |  
| <<=>>= | Assignment by bitwise left shift and right shift |  
| &=^=|= | Assignment by bitwise AND, XOR, and OR |  | 16 | throw | Throw operator (for exceptions) | 
|---|
 | 17 | , | Comma | Left-to-right | 
|---|
 |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
|  |  |  |  | 
自以为 << 的优先级高于 + ,导致错误的结果!
short c = (short)( (high << 8) + low);
short d = (short)( high << 8 + low);
short f = (short)( high << (8 + low));
// d与f结果一致,