C LANGUAGE
Operators are the symbol which operates on value or a variable.
Operators in C programming
-
Arithmetic Operators
-
Increment and Decrement Operators
-
Assignment Operators
-
Relational Operators
-
Logical Operators
-
Conditional Operators
-
Bitwise Operators
-
Special Operators
Arithmetic Operators
-
+ 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:
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++);//It displays 2 then, only c incremented by 1 to 3. printf("%d",++c); //It increments 1 to c then, only c is displayed.
return 0;
}
Output2
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.
-
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.
-
==Equal to 5==3 returns false (0)
-
>Greater than5>3 returns true (1)
-
<Less than5<3 returns false (0)
-
!=Not equal to5!=3 returns true(1)
-
>=Greater than or equal to5>=3 returns true (1)
-
<=Less than or equal to5<=3 return false (0)
Logical Operators
Logical operators are used to combine expressions containing relation operators. In C, there are 3 logical operators:
-
&&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.
-
&Bitwise AND
-
|Bitwise OR
-
^Bitwise exclusive OR
-
~Bitwise complement
-
<<Shift left>>Shift right
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 condition (feb=='l') is true, days will be equal to 29.*/
/*If 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)
-
->(member selection operator)
will be discussed in pointer chapter.
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. OperatorExampleSame as=a=ba=b+=a+=ba=a+b-=a-=ba=a-b*=a*=ba=a*b/=a/=ba=a/b%=a%=ba=a%bRelational OperatorRelational 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.OperatorMeaning of OperatorExample==Equal to5==3 returns false (0)>Greater than5>3 returns true (1)<Less than5<3 returns false (0)!=Not equal to5!=3 returns true(1)>=Greater than or equal to5>=3 returns true (1)<=Less than or equal to5<=3 return false (0)Logical OperatorsLogical operators are used to combine expressions containing relation operators. In C, there are 3 logical operators:OperatorMeaning of OperatorExample&&Logial AND If c=5 and d=2 then,((c==5) && (d>5)) returns false.||Logical ORIf c=5 and d=2 then, ((c==5) || (d>5)) returns true.!Logical NOTIf c=5 then, !(c==5) returns false.ExplanationFor 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 OperatorConditional 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 OperatorsA bitwise operator works on each bit of data. Bitwise operators are used in bit level programming.OperatorsMeaning of operators&Bitwise AND|Bitwise OR^Bitwise exclusive OR~Bitwise complement<<Shift left>>Shift rightBitwise operator is advance topic in programming . Learn more about bitwise operator in C programming.Other OperatorsComma OperatorComma operators are used to link related expressions together. For example:int a,c=5,d;The sizeof operatorIt 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; }OutputSize 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 operatorsconditional_expression?expression1:expression2If 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; }OutputEnter l if the year is leap year otherwise enter n: l Number of days in February = 29Other operators such as &(reference operator), *(dereference operator) and ->(member selection) operator will be discussed in pointer chapter.
