In this tutorial, you will learn about different C operators with the help of examples.
An operator is a symbol which operates on variables or a value. For example + is an operator to perform addition operation.
There are many operators available in C programming language to perform various operations.
Operators in C language can be broadly classified into the below categories.
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Bitwise Operators
- Assignment Operators
- Misc Operators
1) C Arithmetic Operators
An arithmetic variable performs arithmetic operation such as addition, subtraction, multiplication, division, etc on numerical variables or numerical constants.
Suppose, variable A holds 10 and B holds 20 then:
| Operator | Meaning of Operator | Example |
| + | Adds two operands. | A + B = 30 |
| − | Subtracts second operand from the first. | A − B = -10 |
| * | Multiplies both operands. | A * B = 200 |
| / | Divides numerator by de-numerator. | B / A = 2 |
| % | Modulus Operator and remainder of after an integer division. | B % A = 0 |
2) C Relational Operators
A relational operator checks relation between two operands. If the relation is true then it returns 1; if the relation is false, it returns 0.
Suppose, variable A holds 10 and B holds 20 then:
| Operator | Meaning of Operator | Example |
| == | Checks if the values of two operands are equal or not. If yes, then the condition becomes true. | (10 == 20) evaluate to 0 |
| != | Checks if the values of two operands are equal or not. If the values are not equal, then the condition becomes true. | (10 != 20) evaluate to 1 |
| > | Checks if the value of left operand is greater than the value of right operand. If yes, then the condition becomes true. | (10 > 20) evaluate to 0 |
| < | Checks if the value of left operand is less than the value of right operand. If yes, then the condition becomes true. | (10 < 20) evaluate to 1 |
| >= | Checks if the value of left operand is greater than or equal to the value of right operand. If yes, then the condition becomes true. | (10 >= 20) evaluate to 0 |
| <= | Checks if the value of left operand is less than or equal to the value of right operand. If yes, then the condition becomes true. | (10 <= 20) evaluate to 1 |
3) C Logical Operators
The work of the logical operator is to return 0 or 1 depending upon the result of the expression. If the expression evaluate to true then it returns 1 and if the expression evaluate to 0, then it returns 0.
Logical operators are commonly used in C programming language for decision making.
Suppose, variable A holds 10 and B holds 20 then:
| Operator | Meaning of Operator | Example |
| && | Logical AND. True only if all operands are true | expression ((A==10) && (B>25)) evaluated to 0 |
| || | Logical OR. True only if either one operand is true | expression ((A==10) || (B>25)) evaluated to 1 |
| ! | Logical NOT. True only if the operand is 0 | expression !(A==10) evaluated to 0 |
4) C Bitwise Operators
Bitwise operators are used to perform bit level operations in C programming language. These operators are mainly used to perform numerical calculation faster.
| Operator | Meaning of Operator |
| & | Bitwise AND |
| | | Bitwise OR |
| ^ | Bitwise exclusive OR |
| ~ | Bitwise complement |
| << | Shift left |
| >> | Shift right |
5) C Assignment Operators
An assignment operator is used to assign a value to a variable. The most commonly used assignment variable is =.
Following are the commonly used assignment variable in C programming language.
| 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 |
| <<= | C <<= b | C = C << b |
| >>= | C >>= b | C = C >> b |
| &= | C &= b | C = C & b |
| ^= | C ^= b | C ^= b |
| |= | C |= b | C = C | b |
6) C Misc Operators ( sizeof() and ternary )
Apart from the above operations, C also have few operators such as sizeof() and ternary ? operators.
| Operator | Meaning of Operator | Example |
| sizeof() | Returns the size of a variable. | sizeof(a), where a is integer, will return 4. |
| ? : | Conditional Expression. | If Condition is true ? then value X : otherwise value Y |
| & | Returns the address of a variable. | &a; returns the actual address of the variable. |
| * | Pointer to a variable. | *a; |