0% found this document useful (0 votes)
56 views

C Operator Precedence Table

The document summarizes the operator precedence in the C programming language. It lists C operators from highest to lowest precedence and their associativity. Parentheses have the highest precedence and are evaluated left-to-right. Multiplication and division have higher precedence than addition and subtraction, which are evaluated left-to-right. Relational operators like == are evaluated left-to-right. Assignment operators are right-to-left.

Uploaded by

Mahesh Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

C Operator Precedence Table

The document summarizes the operator precedence in the C programming language. It lists C operators from highest to lowest precedence and their associativity. Parentheses have the highest precedence and are evaluated left-to-right. Multiplication and division have higher precedence than addition and subtraction, which are evaluated left-to-right. Relational operators like == are evaluated left-to-right. Assignment operators are right-to-left.

Uploaded by

Mahesh Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

difranco.

net

C Operator Precedence Table


This page lists C operators in order of precedence (highest to lowest). Their associativity indicates in what order operators of equal precedence in an expression are applied. Operator Description Associativity

() [] . -> ++ -++ -+!~ (type) * & sizeof * / % + << >> < <= > >= == != & ^ | && || ?: = += -= *= /= %= &= ^= |= <<= >>= ,
Note 1:

Parentheses (function call) (see Note 1) Brackets (array subscript) Member selection via object name Member selection via pointer Postfix increment/decrement (see Note 2) Prefix increment/decrement Unary plus/minus Logical negation/bitwise complement Cast (convert value to temporary value of type) Dereference Address (of operand) Determine size in bytes on this implementation Multiplication/division/modulus Addition/subtraction Bitwise shift left, Bitwise shift right Relational less than/less than or equal to Relational greater than/greater than or equal to Relational is equal to/is not equal to Bitwise AND Bitwise exclusive OR Bitwise inclusive OR Logical AND Logical OR Ternary conditional Assignment Addition/subtraction assignment Multiplication/division assignment Modulus/bitwise AND assignment Bitwise exclusive/inclusive OR assignment Bitwise shift left/right assignment Comma (separate expressions)

left-to-right

right-to-left

left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right left-to-right right-to-left right-to-left

left-to-right

Parentheses are also used to group sub-expressions to force a different precedence; such parenthetical expressions can be nested and are evaluated from inner to outer.
Note 2:

Postfix increment/decrement have high precedence, but the actual increment or decrement of the operand is delayed (to be accomplished sometime before the statement completes execution). So in the statement y = x * z++; the current value of z is used to evaluate the expression (i.e., z++ evaluates to z) and z only incremented after all else is done. See postinc.c for another example.

Updated: 20111216

You might also like