C Programming - Operators


By on 1:22 AM

Operators are the symbol which operates on value or a variable. For example: + is a operator to perform addition.
C programming language has wide range of operators to perform various operations. For better understanding of operators, these operators can be classified as:

Operators in C programming:

Arithmetic Operators
Increment and Decrement Operators
Assignment Operators
Relational Operators
Logical Operators
Conditional Operators
Bitwise Operators
Special Operators

Arithmetic Operators :

Operators          Meaning of Operator
+                           addition or unary plus
-                            subtraction or  unary minus
*                            multiplication
/                            division
%                          remainder after division (modulo division)

Example of working of arithmetic operators:

/* Program to demonstrate the working of arithmetic operators in C.  */
#include <stdio.h>
int main()
{
    int a=9,b=4,c;
    c=a+b;
    printf("a+b=%d\n",c);
    c=a-b;
    printf("a-b=%d\n",c);
    c=a*b;
    printf("a*b=%d\n",c);
    c=a/b;
    printf("a/b=%d\n",c);
    c=a%b;
    printf("Remainder when a divided by b=%d\n",c);
    return 0;
}

a+b=13
a-b=5
a*b=36
a/b=2
Remainder when a divided by b=1

Explanation:

Here, the operators +, - and * performed normally as you expected. In normal calculation, 9/4 equals to 2.25. But, the output is 2 in this program. It is because, a and b are both integers. So, the output is also integer and the compiler neglects the term after decimal point and shows answer 2 instead of 2.25. And, finally a%b is 1,i.e. ,when a=9 is divided by b=4, remainder is 1.

Suppose a=5.0, b=2.0, c=5 and d=2
In C programming,
a/b=2.5    
a/d=2.5
c/b=2.5      
c/d=2
Note: % operator can only be used with integers.

Increment and decrement operators:

In C, ++ and -- are called increment and decrement operators respectively. Both of these operators are unary operators, i.e, used on single operand. ++ adds 1 to operand and -- subtracts 1 to operand respectively. For example:

Let a=5 and b=10
a++;  //a becomes 6
a--;  //a becomes 5
++a;  //a becomes 6
--a;  //a becomes 5 
Difference between ++ and -- operator as postfix and prefix:

When i++ is used as prefix(like: ++var), ++var will increment the value of var and then return it but, if ++ is used as postfix(like: var++), operator will return the value of operand first and then only increment it. This can be demonstrated by an example:

#include <stdio.h>
int main()
{
    int c=2,d=2;
    printf("%d\n",c++); //this statement displays 2 then, only c incremented by 1 to 3.
    printf("%d",++c);   //this statement increments 1 to c then, only c is displayed. 
    return 0;
}

Output:

2
4

Assignment Operators:



The most common assignment operator is =. This operator assigns the value in right side to the left side. For example:

var=5  //5 is assigned to var
a=c;   //value of c is assigned to a
5=c;   // Error! 5 is a constant.
Operator Example Same as
= a=b a=b
+= a+=b a=a+b
-= a-=b a=a-b
*= a*=b a=a*b
/= a/=b a=a/b
%= a%=b a=a%b

Relational Operator:

Relational operators checks relationship between two operands. If the relation is true, it returns value 1 and if the relation is false, it returns value 0. For example:

a>b
Here, > is a relational operator. If a is greater than b, a>b returns 1 if not then, it returns 0.

Relational operators are used in decision making and loops in C programming.

Operators             Meaning of Operator                                   Example
==                           Equal to                                                           5==3 returns false (0)
>                             Greater than                                                    5>3 returns true (1)
<                             Less than                                                          5<3 returns false (0)
!=                            Not equal to                                                     5!=3 returns true(1)
>=                           Greater than or equal to                                  5>=3 returns true (1)
<=                           Less than or equal to                                       5<=3 return false (0)

Logical Operators:

Logical operators are used to combine expressions containing relation operators. In C, there are 3 logical operators:

Operators           Meaning of Operator         Example
&&                       Logial AND                         If c=5 and d=2 then,((c==5) && (d>5)) returns false.
||                           Logical OR                          If c=5 and d=2 then, ((c==5) || (d>5)) returns true.
!                            Logical NOT                        If c=5 then, !(c==5) returns false.

Explanation:

For expression, ((c==5) && (d>5)) to be true, both c==5 and d>5 should be true but, (d>5) is false in the given example. So, the expression is false. For expression ((c==5) || (d>5)) to be true, either the expression should be true. Since, (c==5) is true. So, the expression is true. Since, expression (c==5) is true, !(c==5) is false.

Conditional Operator:

Conditional operator takes three operands and consists of two symbols ? and : . Conditional operators are used for decision making in C. For example:

c=(c>0)?10:-10;
If c is greater than 0, value of c will be 10 but, if c is less than 0, value of c will be -10.

Bitwise Operators:

A bitwise operator works on each bit of data. Bitwise operators are used in bit level programming.

Operators             Meaning of operators
&                            Bitwise AND
|                             Bitwise OR
^                             Bitwise exclusive OR
~                             Bitwise complement
<<                           Shift left
>>                           Shift right

Bitwise operator is advance topic in  programming . Learn more about bitwise operator in C programming.

Other Operators:

Comma Operator:
Comma operators are used to link related expressions together. For example:

int a,c=5,d;
The sizeof operator
It is a unary operator which is used in finding the size of data type, constant, arrays, structure etc. For example:

#include <stdio.h>
int main()
{
    int a;
    float b;
    double c;
    char d;
    printf("Size of int=%d bytes\n",sizeof(a));
    printf("Size of float=%d bytes\n",sizeof(b));
    printf("Size of double=%d bytes\n",sizeof(c));
    printf("Size of char=%d byte\n",sizeof(d));
    return 0;
}
Output:

Size of int=4 bytes
Size of float=4 bytes
Size of double=8 bytes
Size of char=1 byte

Conditional operators (?:)

Conditional operators are used in decision making in C programming, i.e, executes different statements according to test condition whether it is either true or false.

Syntax of conditional operators:
conditional_expression?expression1:expression2
If the test condition is true, expression1 is returned and if false expression2 is returned.

Example of conditional operator:

#include <stdio.h>
int main()
{
   char feb;
   int days;
   printf("Enter l if the year is leap year otherwise enter 0: ");
   scanf("%c",&feb);
   days=(feb=='l')?29:28;
   /*If test condition (feb=='l') is true, days will be equal to 29. */
   /*If test condition (feb=='l') is false, days will be equal to 28. */ 
   printf("Number of days in February = %d",days);
   return 0;
}
Output:

Enter l if the year is leap year otherwise enter n: l
Number of days in February = 29
Other operators such as &(reference operator), *(dereference operator) and ->(member selection) operator will be discussed in pointer chapter.

About Syed Faizan Ali

Faizan is a 17 year old young guy who is blessed with the art of Blogging,He love to Blog day in and day out,He is a Website Designer and a Certified Graphics Designer.