"Note" C operator precedence formula easy wrong point

Source: Internet
Author: User


C-Operator Precedence!


Priority level Operator Name or meaning Use form Combination direction Description
1 [] Array subscript array name [constant expression] Left to right
() Parentheses (expression)/function name (formal parameter list)
. Member selection (object) Object. Member name
- Member selection (pointer) Object pointers, member names
2 - Minus sign operator -expression Right to Left Monocular operator
Type Forcing type conversions (data type) expression
++ Self-increment operator + + variable name/variable name + + Monocular operator
-- Self-decrement operator --Variable name/variable name-- Monocular operator
* Value operator * Pointer variable Monocular operator
& Fetch address operator & Variable Name Monocular operator
! Logical non-operator ! An expression Monocular operator
~ Bitwise inverse operator ~ Expression Monocular operator
sizeof Length operator sizeof (expression)
3 / Except An expression/expression Left to right Binocular operator
* By Expression-expression * Binocular operator
% Remainder (modulo) Integer expression/integer expression Binocular operator
4 + Add An expression + an expression Left to right Binocular operator
- Reducing Expression-expression Binocular operator
5 << Move left Variables << expressions Left to right Binocular operator
>> Move right Variables >> expressions Binocular operator
6 > Greater than Expressions > expressions Left to right Binocular operator
>= Greater than or equal Expression->= expression Binocular operator
< Less than Expressions < expressions Binocular operator
<= Less than or equal Expression-<= expression Binocular operator
7 == Equals Expression-= = Expression Left to right Binocular operator
!= Not equal to Expression! = Expression Binocular operator
8 & Bitwise-AND Expressions & Expressions Left to right Binocular operator
9 ^ Bitwise XOR OR An expression ^ expression Left to right Binocular operator
10 | Bitwise OR Expression-expression Left to right Binocular operator
11 && Logic and Expressions && Expressions Left to right Binocular operator
12 || Logical OR An expression | | An expression Left to right Binocular operator
13 ?: Conditional operators Expression 1? Expression 2: Expression 3 Right to Left Trinocular operator
14 = Assignment operators variable = expression Right to Left
/= Assign value after addition Variable-/= expression
*= Multiply post-Assign value Variable-*= expression
%= Assign value after modulo Variable-%= expression
+= Add after Assignment Variable + = expression
-= Reduced-value Assignment Variable-= expression
<<= Assign value after left shift Variable-<<= expression
>>= Assign value after right shift Variable->>= expression
&= Bitwise AND post-assigned values Variable-&= expression
^= Bitwise XOR or post-assignment Variable-^= expression
|= Bitwise OR post-assigned value Variable-|= expression
15 , Comma operator An expression, an expression, a... Left to right Left-to-right sequential operation
Description




Operators of the same precedence, with the order of operations determined by the binding direction


Some error-prone priority issues


In the table above, how do you prioritize an expression if there are several operators with Priority 1? This is a confusing place for many beginners. These error-prone situations are sorted out in the following table:

650) this.width=650; "src=" Http://s1.51cto.com/wyfs02/M01/75/9E/wKioL1Y-7SWC2rc4AAJHHolg3W4790.jpg "title=" Note the priority. jpg "alt=" wkiol1y-7swc2rc4aajhholg3w4790.jpg "/>




Priority formula

parenthesis member first; parentheses operator [] () member operator. -

All monocular second; All monocular operators such as + + + (positive)-(negative) pointer operation *&

Multiplication Yozo, plus minus four; this "remainder" means the residual operation is%

Shift five, relationship six, shift operator:<< >>, relationship:> < >= <=, etc.

Equals (and) unequal row seventh; = = = = =

Bits and Xor and bits or; these are bitwise operations: Bits and (&) XOR (^) bits or (|)

"Three points of the world" eighty or ninety;

logical or heel; logical Operator: | | and &&

12 and 11; Note order: Priority (| |) Bottom-to-priority (&&)

The condition is higher than the assignment, the three-mesh operator precedence is ranked to 13-bit only than the assignment operator and the "," high

Lowest comma operation level! The comma operator has the lowest precedence







This article comes from "Life is endless, tossing and turning." "Blog, be sure to keep this provenance http://990487026.blog.51cto.com/10133282/1710694

"Note" C operator precedence formula easy wrong point

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.