Operators are symbols, which guide the compiler to perform a specific task on given values. For example +,-,* are operators for the mathematical task. C language has a rich set of operators, we will discuss in detail here.

## Types of Operators in C

C language has different types of Operators for different tasks.

- Unary Operator
- Binary Operator
- Ternary Operator
- Bitwise Operator
- Special Operator

## Unary Operators in C

A Unary operator in C is an operator with a single operand in an expression or statement. It increases (++) or decreases (‐‐) the value of a variable by one.

- Prefix
- Postfix

**prefix** – When Operator is before the variable, it is called prefix. First, it increases the value, then assigns it to a variable or statement.

**Example 1: pre-increment or prefix example in C.**

```
#include<stdio.h>
int main()
{
int a=10,b;
b=++a;
printf("\nB=%d",b);
printf("\nA=%d",a);
return 0;
}
```

`Output :`

B=11

A=11

B=11

A=11

**postfix** – When the Operator is after the variable, it is called postfix. First, it assigns the value to a variable or statement, then it increases or decreases the value of a variable by 1.

**Example 2: Post increment or postfix example in C.**

```
#include<stdio.h>
int main()
{
int a=10,b;
b=a++;
printf("\nB=%d",b);
printf("\nA=%d",a);
return 0;
}
```

`Output :`

B=10

A=11

B=10

A=11

## Binary Operators in C

Binary operators require two operands in an expression. After execution it returns a result, you need to carry in other variables or statements.

- Arithmetic Operator (Mathematical Operator)
- Assignment Operator
- Relational Operator (Comparison Operator)
- Logical Operator

### Arithmetic Operator (Mathematical Operator)

Operator | Description |
---|---|

+ | For Addition |

– | For Subtraction |

* | Multiplication |

/ | Divison |

% | Remainder of Division (modulus) |

**Example 3: Arithmetic Operation Example in C.**

```
#include<stdio.h>
int main()
{
int a=25,b=10,c=0;
c=a+b;
printf("\nSum=%d",c);
c=a-b;
printf("\nSubtract=%d",c);
c=a*b;
printf("\nMultiply=%d",c);
c=a/b;
printf("\nDivison=%d",c);
c=a%b;
printf("\nRemainder=%d",c);
return 0;
}
```

`OutPut :`

Sum=35

Subtract=15

Multiply=250

Divison=2

Remainder=5

Sum=35

Subtract=15

Multiply=250

Divison=2

Remainder=5

### Assignment Operator

Assignment Operator assigns values from right side operands to left side operand

Operator | Example |
---|---|

= | a=5, 5 assign to variable a |

+= | a=a+b can also write as a+=b |

-= | a=a-b can also write as a-=b |

*= | a=a*b can also write as a*=b |

/= | a=a/b can also write as a/=b |

%= | a=a%b can also write as a%=b |

### Relational Operator (Comparison Operator)

The Relational operator checks the relation or compares two operands and returns Boolean value as a result.

Operator | Description |
---|---|

< | Less then |

> | Greater then |

<= | Less then or Equal |

>= | Greater then or equal |

== | Equal to |

!= | Not equal to |

**Example 4: Relational Operator example in C.**

```
#include<stdio.h>
int main()
{
int a=25,b=10;
printf("\nA < b = %d",a<b);
printf("\nA > b = %d",a>b);
printf("\nA <= b = %d",a<=b);
printf("\nA >= b = %d",a>=b);
printf("\nA == b = %d",a==b);
printf("\nA != b = %d",a!=b);
return 0;
}
```

`If True then result is 1`

If False then result is 0

Ouput :

A < b = 0

A > b = 1

A <= b = 0

A >= b = 1

A == b = 0

A != b = 1

If False then result is 0

Ouput :

A < b = 0

A > b = 1

A <= b = 0

A >= b = 1

A == b = 0

A != b = 1

### Logical Operators

Logical operators in C are used to combine relational expression and return boolean value as a result. Before we start, keep in mind that all non zero values are considered as true (1) and zero as false in C language. There are three types of logical operators,

Operator | Name | Description |
---|---|---|

&& | Logical AND | Return TRUE if all expression is true, otherwise FALSE. |

|| | Logical OR | Return TRUE if all or any one expression is true, otherwise FALSE. |

! | Logical NOT | Reverse the state of the expression(TRUE expression to False and FALSE to TRUE). |

**Example 5 : Logical operator example in C.**

```
#include<stdio.h>
int main()
{
int n=5,ans;
ans=n>0 && n<100;
printf("\nResult = %d",ans);
//Result is 1, because both expression is true
ans=n>50 && n<100;
printf("\nResult = %d",ans);
//Result is 0, because one expression is false
ans=n>0 || n<100;
printf("\nResult = %d",ans);
//Result is 1, because both expression is true
ans=n>50 || n<100;
printf("\nResult = %d",ans);
//Result is 1, because at least one expression is true
ans=!(n>0);
printf("\nResult = %d",ans);
//Result is 0, because not reverse the state of expression
ans=!(n>50);
printf("\nResult = %d",ans);
//Result is 1, because not reverse the state of expression
return 0;
}
```

`output :`

Result : 1

Result = 0

Result = 1

Result = 1

Result = 0

Result = 1

Result : 1

Result = 0

Result = 1

Result = 1

Result = 0

Result = 1

## Ternary Operator in C (Conditional Operator)

**A Ternary operator in C** also known as a conditional operator. It uses three operands, so, it is called ternary. It works based on three parts, condition, true and false.

```
Syntax:
Condition ? expression 1 : expression 2
```

- ? is a ternary operator
- expression 1 executed, when the condition is true.
- expression 2 executed, when the condition is false.

**Example 6: Conditional operator in C, to check number is Even or Odd.**

```
#include<stdio.h>
int main()
{
int n;
printf("\nEnter a number");
scanf("%d",&n);
(n%2==0) ? printf("Even") : printf("Odd");
return 0;
}
```

`Output :`

Enter a number 23

Odd

Enter a number 23

Odd

## Bitwise Operators in C

**Bitwise operators in C** are used to work with binary numbers. Decimal numbers are converted into binary first, then bitwise operator works on each bit.

Operators | Description |
---|---|

& | Bitwise AND |

| | Bitwise OR |

^ | Bitwise XOR |

~ | Bitwise Complement |

<< | Left Shift |

>> | Right Shift |

**Example 7: Bitwise Operator example in C.**

```
#include<stdio.h>
int main()
{
int a=11, b=3;
printf("\nBitwise And : %d",a & b);
// 00001011 & 00000011, result 00000011 ( 3 as Decimal)
printf("\nBitwise Or : %d",a | b);
// 00001011 | 00000011, result 00001011 ( 11 as Decimal)
printf("\nBitwise XOR : %d",a ^ b);
// 00001011 ^ 00000011, result 00001000 ( 8 as Decimal)
printf("\nBitwise Complement : %d",~a);
// 2's Complement
printf("\nLeft Shift : %d",a << b);
// 00001011 << 3, result 01011000 ( 88 as Decimal)
// remove 3 digit from left and add three 0 to right
printf("\nRight Shift : %d",a >> b);
// 00001011 >> 3, result 00000001 ( 1 as Decimal)
// remove 3 digit from right and add three 0 to left
return 0;
}
```

`Output :`

Bitwise And : 3

Bitwise Or : 11

Bitwise XOR : 8

Bitwise Complement : -12

Left Shift : 88

Right Shift : 1

Bitwise And : 3

Bitwise Or : 11

Bitwise XOR : 8

Bitwise Complement : -12

Left Shift : 88

Right Shift : 1

## Special Operators in C Language

Some more operators in C, known as special operators.

Operators | Description | Example |
---|---|---|

sizeof | Return sizeof a variable. | printf(“\n%d”,sizeof(var)); |

& | Address Operator. | &var, return address of a variable |

* | Pointer | *var, Pointer variable |