This post demonstrates the list of operators available and their precedence with associativity in C.
Please share your thoughts on this post in the comments section.
What is Operator Precedence?
Operator precedence determines how operators are grouped, when different operators appear close by in one expression. For example, '*' has higher precedence than '+'. Thus, the expression a+b*c means to multiply b and c, and then add a to the product (i.e., a+(b*c)). You can overrule the precedence of the operators by using parenthesis. For example, consider the expression a+b*c, you want to first add and then multiply. In this case, write the expression as (a+b)*c.
What is Associativity?
If two operators has the same precedence, then associativity tells you in which direction the expression will be carried out by grouping operators. For example, '+' and '' have the same precedence. Thus the expression a+bc means to add a and b, and then subtract c from the addition (i.e., (a+b)c). The expression is carried out from left to right direction.
Precedence  How operators are grouped in an expression. Associativity  In what order operators of equal precedence are grouped in an expression.
List of C operators in order of precedence (highest to lowest) 
Operator

Description 
Associativity


( ) [ ] . > ++   Parentheses (function call) (see Note 1) Brackets (array subscript) Member selection via object name Member selection via pointer Postfix increment/decrement (see Note 2)  lefttoright 
++  +  ! ~ (type) * & sizeof  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  righttoleft 
* / %  Multiplication/division/modulus  lefttoright 
+   Addition/subtraction  lefttoright 
<>  Bitwise shift left, Bitwise shift right  lefttoright 
< >=  Relational less than/less than or equal to Relational greater than/greater than or equal to  lefttoright 
== !=  Relational is equal to/is not equal to  lefttoright 
&  Bitwise AND  lefttoright 
^  Bitwise exclusive OR  lefttoright 
  Bitwise inclusive OR  lefttoright 
&&  Logical AND  lefttoright 
   Logical OR  lefttoright 
? :  Ternary conditional  righttoleft 
= += = *= /= %= &= ^= = <>=  Assignment Addition/subtraction assignment Multiplication/division assignment Modulus/bitwise AND assignment Bitwise exclusive/inclusive OR assignment Bitwise shift left/right assignment  righttoleft 
,

Comma (separate expressions)  lefttoright 

Please share your thoughts on this post in the comments section.
0 comments:
Post a Comment