C++和Java運算符優先級表

1. C++ operator precedence

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
newnew[] Dynamic memory allocation
deletedelete[] 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

2. Java operator precedence

The operators in Java, shown in order of precedence - from highest to lowest
Priority Operators Operation Associativity
1 [ ] array index left
() method call
. member access
 
2 ++ pre- or postfix increment right
-- pre- or postfix decrement
+ - unary plus, minus
~ bitwise NOT
! boolean (logical) NOT
(type) type cast
new object creation
 
3 * / % multiplication, division, remainder left
 
4 + - addition, substraction left
+ string concatenation
 
5 << signed bit shift left left
>> signed bit shift right
>>> unsigned bit shift right
 
6 < <= less than, less than or equal to left
> >= greater than, greater than or equal to
instanceof reference test
 
7 == equal to left
!= not equal to
 
8 & bitwise AND left
& boolean (logical) AND
 
9 ^ bitwise XOR left
^ boolean (logical) XOR
 
10 | bitwise OR left
| boolean (logical) OR
 
11 && boolean (logical) AND left
 
12 || boolean (logical) OR left
 
13 ? : conditional right
 
14 = assignment right
*= /= += -= %=
<<= >>= >>>=
&= ^= |=
combinated assignment 
(operation and assignment)
 


reference: 

1. http://en.cppreference.com/w/cpp/language/operator_precedence

2. http://bmanolov.free.fr/javaoperators.php



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章