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.