读书人

C++跟Java运算符优先级表

发布时间: 2013-03-28 10:20:24 作者: rapoo

C++和Java运算符优先级表

1. C++ operator precedence

PrecedenceOperatorDescriptionAssociativity1::Scope resolutionLeft-to-right2++ --Suffix/postfix increment and decrement()Function call[]Array subscripting.Element selection by reference?>Element selection through pointer3++ --Prefix increment and decrementRight-to-left+ ?Unary plus and minus! ~Logical NOT and bitwise NOT(type)Type cast*Indirection (dereference)&Address-ofsizeofSize-ofnew, new[]Dynamic memory allocationdelete, delete[]Dynamic memory deallocation4.* ->*Pointer to memberLeft-to-right5* / %Multiplication, division, and remainder6+ ?Addition and subtraction7<< >>Bitwise left shift and right shift8< <=For relational operators < and ≤ respectively> >=For relational operators > and ≥ respectively9== !=For relational = and ≠ respectively10&Bitwise AND11^Bitwise XOR (exclusive or)12|Bitwise OR (inclusive or)13&&Logical AND14||Logical OR15?:Ternary conditionalRight-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 OR16throwThrow operator (for exceptions)17,CommaLeft-to-right

2. Java operator precedence

The operators in Java, shown in order of precedence - from highest to lowestPriorityOperatorsOperationAssociativity1[ ]array indexleft()method call.member access 2++pre- or postfix incrementright--pre- or postfix decrement+ -unary plus, minus~bitwise NOT!boolean (logical) NOT(type)type castnewobject creation 3* / %multiplication, division, remainderleft 4+ -addition, substractionleft+string concatenation 5<<signed bit shift leftleft>>signed bit shift right>>>unsigned bit shift right 6< <=less than, less than or equal toleft> >=greater than, greater than or equal toinstanceofreference test 7==equal toleft!=not equal to 8&bitwise ANDleft&boolean (logical) AND 9^bitwise XORleft^boolean (logical) XOR 10|bitwise ORleft|boolean (logical) OR 11&&boolean (logical) ANDleft 12||boolean (logical) ORleft 13? :conditionalright 14=assignmentright*= /= += -= %=
<<= >>= >>>=
&= ^= |=
combinated assignment
(operation and assignment)

reference:

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

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



读书人网 >C++

热点推荐