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:
Arithmetic Operators
Operator | 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.
Operator | 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:
Operator | 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.
No comments:
Post a Comment