An operator is a special symbol that tells the compiler to perform specific mathematical or logical operations. It is the combination of constants and variables through expressions.
are the variables and 5 is the constants.
There are various types of the operator in C Language.
Types of Operator
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Bitwise Operators
- Assignment Operators
- Misc Operators
- Increment/Decrement operators
Arithmetic Operators Arithmetic operators are used to perform mathematical calculations like addition, subtraction, multiplication, division, and modulus.
| Operator |
Example (int a=9, b=2) |
Result |
| + |
A+B |
11 |
| - |
A-B |
7 |
| * |
A*B |
18 |
| / |
A/B |
4.5 |
| % |
A%4 |
1 |
Example:
#include <stdio.h>
int main()
{
int a=9,b=2, add,sub,mul,div,mod;
add = a+b;
sub = a-b;
mul = a*b;
div = a/b;
mod = a%b;
printf("Addition of (a+b ) is : %d\n", add);
printf("Subtraction of (a-b) is : %d\n", sub);
printf("Multiplication of (a*b) is : %d\n", mul);
printf("Division of (a / b) is : %d\n", div);
printf("Modulus of (a%b) is : %d\n", mod);
}
Output:
Addition of (a+b ) is : 11
Subtraction of (a-b) is : 7
Multiplication of (a*b) is : 18
Division of (a / b) is : 4
Modulus of (a%b) is : 1
Relational Operators
Relational operators are used to compare the value of two variables.
| Operator |
Description |
| > |
x > y (x is greater than y) |
| < |
x < y (x is less than y) |
| >= |
x >= y (x is greater than or equal to y) |
| <= |
x <= y (x is less than or equal to y) |
| == |
x == y (x is equal to y) |
| != |
x != y (x is not equal to y) |
Let us consider an example
#include <stdio.h>
int main()
{
int a=9,b=2;
if (a == b)
{
printf("a and b are equal");
}
else
{
printf("a and b are not equal");
}
}
Output
a and b are not equal
Logical Operators Logical operators are used to perform logical operations on the given two variables. There are 3 logical operators in C Language
AND(&&), OR ( || ) and
NOT (!).
| Operator |
Description |
| && |
It returns true when both conditions are true. |
| || |
It returns true while at least one condition is true. |
| ! |
It reverses the state of the operand. |
Let us consider an example
#include <stdio.h>
int main()
{
int a=8, b=3, c=10;
if(a>b && b<c){
printf("$$Operator : Both Condition are true \n");
}
if(a>b || b<c){
printf("||Operator : Only one condition is true \n");
}
return 0;
}
Output
$$Operator : Both Condition are true
||Operator : Only one condition is true
Assignment operatorsAssignment operators are used to assign the values for the variable.
| Operator |
Description |
| = |
sum = 10;
10 is assigned to variable sum |
| += |
sum += 10;
This is same as sum = sum + 10 |
| -= |
sum -= 10;
It is same as sum = sum – 10 |
| *= |
sum *= 10;
It is same as sum = sum * 10 |
| /= |
sum /= 10;
It is same as sum = sum / 10 |
| %= |
sum %= 10;
It is same as sum = sum % 10 |
| &= |
sum&=10;
It is same as sum = sum & 10 |
| ^= |
sum ^= 10;
It is same as sum = sum ^ 10 |
Let us consider an example
#include <stdio.h>
int main(){
int a=8,b=3,c;
c=a+b;
printf("a+b value is assign to c");
return 0;
}
Output
a+b value is assign to c
Operator Precedence in C
The precedence of operators are used to specify the operators which will be evaluated first and next.
Example:
int result = 5+5*10-2;
The precedence and associatively of C operators is given below:
| Category |
Operator |
Associativity |
| Postfix |
() [] -> . ++ - - |
Left to right |
| Unary |
+ - ! ~ ++ - - (type)* & sizeof |
Right to left |
| Multiplicative |
* / % |
Left to right |
| Additive |
+ - |
Left to right |
| Shift |
<<>> |
Left to right |
| Relational |
<<= >>= |
Left to right |
| Equality |
== != |
Left to right |
| Bitwise AND |
& |
Left to right |
| Bitwise XOR |
^ |
Left to right |
| Bitwise OR |
| |
Left to right |
| Logical AND |
&& |
Left to right |
| Logical OR |
|| |
Left to right |
| Conditional |
?: |
Right to left |
| Assignment |
= += -= *= /= %=>>= <<= &= ^= |= |
Right to left |
| Comma |
, |
Left to right |
Miscellaneous operators in CThere are few other important operators including
sizeof and
?: supported by C Language.
| Operator |
Description |
| sizeof() |
It returns the size of a variable. |
| & |
It returns the address of a variable. |
| * |
It assigns pointer to a variable. |
| ? : |
It is a Conditional Expression. |
Bitwise operatorsBitwise operator is used to perform bit by bit operations on two variables.
There are following truth table for
&,
| and
^.
| P |
q |
p & q |
p | q |
p ^ q |
| 0 |
0 |
0 |
0 |
0 |
| 0 |
1 |
0 |
1 |
1 |
| 1 |
1 |
1 |
1 |
0 |
| 1 |
0 |
0 |
1 |
1 |
| Operator |
Description |
| & Binary AND Operator |
It copies a bit to the result if it exists in both operands. |
| | Binary OR Operator |
It copies a bit if it exists in either operand. |
| ^ Binary XOR Operator |
It copies the bit if it is set in one operand but not both. |
| ~ Binary Ones Complement Operator |
It is unary and has the effect of 'flipping' bits. |
| << Binary Left Shift Operator |
The left operands value is moved left by the number of bits specified by the right operand. |
| >> Binary Right Shift Operator. |
The left operands value is moved right by the number of bits specified by the right operand. |
Increment / decrement operator
Increment Operator:
The increment operator is used to increase the value of the variable by one.
Syntax:
Increment operator: ++ var_name; or var_name++;
Example:
Increment operator: ++i; i++;
Decrement Operator: Decrement operator is used to decrease the value of the variable by one.
Syntax:
Decrement operator: -- var_name; or var_name--;
Example:
Decrement operator: --i; i--;
Difference between Increment & Decrement operators There are various differences between pre/Post increment & decrement operators in C.
| Operator |
Operator/Description |
| Pre increment operator (++i) |
The value of i is incremented before assigning it to the variable i. |
| Post increment operator (i++) |
The value of i is incremented after assigning it to the variable i. |
| Pre decrement operator (- -i) |
The value of i is decremented before assigning it to the variable i. |
| Post decrement operator (i--) |
The value of i is decremented after assigning it to variable i. |