C operators are symbols that are used to perform mathematical or logical manipulations. The C programming language is rich with built-in operators. Operators take part in a program for manipulating data and variables and form a part of the mathematical or logical expressions.

**Table of Contents**

## Types of Operators in C

- Arithmetic Operators
- Relational Operators
- Logical Operators
- Assignment Operators
- Increment and Decrement Operators
- Conditional Operator
- Bitwise Operators
- Special Operators

## Arithmetic Operators

Arithmetic Operators are used to performing mathematical calculations like addition (+), subtraction (-), multiplication (*), division (/) and modulus (%).

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

+ | Addition |

- | Subtraction |

* | Multiplication |

/ | Division |

% | Modulus |

### C Program to Add Two Numbers

```
#include <stdio.h>
void main()
{
int i=3,j=7,k; /* Variables Defining and Assign values */
k=i+j;
printf("sum of two numbers is %d\n", k);
}
```

## Increment and Decrement Operators

Increment and Decrement Operators are useful operators generally used to minimize the calculation, i.e. ++x and x++ means x=x+1 or -x and x−−means x=x-1. But there is a slight difference between ++ or −− written before or after the operand. Applying the pre-increment first add one to the operand and then the result is assigned to the variable on the left whereas post-increment first assigns the value to the variable on the left and then increment the operand.

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

++ | Increment |

−− | Decrement |

```
#include <stdio.h>
//stdio.h is a header file used for input.output purpose.
void main()
{
//set a and b both equal to 5.
int a=5, b=5;
//Print them and decrementing each time.
//Use postfix mode for a and prefix mode for b.
printf("\n%d %d",a--,--b);
printf("\n%d %d",a--,--b);
printf("\n%d %d",a--,--b);
printf("\n%d %d",a--,--b);
printf("\n%d %d",a--,--b);
}
```

5 4 4 3 3 2 2 1 1 0

## Relational Operators

Relational operators are used to comparing two quantities or values.

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

== | Is equal to |

!= | Is not equal to |

> | Greater than |

< | Less than |

>= | Greater than or equal to |

<= | Less than or equal to |

## Logical Operators

C provides three logical operators when we test more than one condition to make decisions. These are: && (meaning logical AND), || (meaning logical OR) and ! (meaning logical NOT).

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

&& | And operator. It performs logical conjunction of two expressions. (if both expressions evaluate to True, result is True. If either expression evaluates to False, the result is False) |

|| | Or operator. It performs a logical disjunction on two expressions. (if either or both expressions evaluate to True, the result is True) |

! | Not operator. It performs logical negation on an expression. |

## Bitwise Operators

C provides a special operator for bit operation between two variables.

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

<< | Binary Left Shift Operator |

>> | Binary Right Shift Operator |

~ | Binary Ones Complement Operator |

& | Binary AND Operator |

^ | Binary XOR Operator |

| | Binary OR Operator |

## Assignment Operators

Assignment operators applied to assign the result of an expression to a variable. C has a collection of shorthand assignment operators.

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

= | Assign |

+= | Increments then assign |

-= | Decrements then assign |

*= | Multiplies then assign |

/= | Divides then assign |

%= | Modulus then assign |

<<= | Left shift and assign |

>>= | Right shift and assign |

&= | Bitwise AND assign |

^= | Bitwise exclusive OR and assign |

|= | Bitwise inclusive OR and assign |

## Conditional Operator

C offers a ternary operator which is the conditional operator (?: in combination) to construct conditional expressions.

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

? : | Conditional Expression |

## Special Operators

C supports some special operators

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

sizeof() | Returns the size of a memory location. |

& | Returns the address of a memory location. |

* | Pointer to a variable. |

### Program to demonstrate the use of sizeof operator

```
#include <stdio.h>
void main()
{
int i=10; /* Variables Defining and Assign values */ printf("integer: %d\n", sizeof(i));
}
```