Operator precedence and associativity in c programming

operator precedence and Associativity in C Programming...

Any c operator have two properties ; priority and associtiavity.

Precedence of operators...


  • If more than one operators are involved in an expression.
  •  C language has a predefined rule of priority for the operators.
  •  here This rule of priority of operators is called operator precedence.
  • In C, precedence of arithmetic operators( *, %, /, +, -) is higher than relational operators(==, !=, >, <, >=, <=) and precedence of relational operator is higher than logical operators(&&, || and !).

Associativity of operators...


  • If two operators of same priority is present in an expression, Associativity of operators indicate the order in which they execute.






Operators Associativity...

++ --         Post increment/post decrement operator Left to right associativity
         ++ --          Pre-increment/pre-decrement operator           Right to left associativity

         + -             Unary plus/minus operator Right to left associativity

        ! ~ Logical NOT/bitwise NOT operator                 Right to left associativity

        *               "Value at address" operator Right to left associativity

         &              "Address of" operator                                        Right to left associativity

      sizeof           "Size of" operator                                                Right to left associativity

          *             / % Multiplication/division/modulus operator     Left to right associativity

         + -            Addition/subtraction operator                             Left to right associativity

   << >>             Bitwise left shift/bitwise right shift operator Left to right associativity

   < <= "Less than"/"Less than or equal to" relational operator         Left to right associativity

   > >= "Greater than"/"Greater than or equal to" relational operator     Left to right associativity

      == != "Equal to"/"Not equal to" relational operator                        Left to right associativity

     &                  Bitwise AND operator                                                 Left to right associativity

      ^ Bitwise XOR operator                                                Left to right associativity

   | Bitwise OR operator                                                    Left to right associativity

     &&             Logical AND operator Left to right associativity

     || Logical OR operator                                                      Left to right associativity

     ?: Ternary conditional operator                                         Right to left associativity

    = Assignment operator                                                    Right to left associativity

     += -=        Assignment with addition/subtraction Right to left associativity

     *= /= %/    Assignment with multiplication/division/modulus      Right to left associativity

   <<= >>=       Assignment with bitwise left shift/bitwise right shift    Right to left associativity

2 comments: