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结果一致,