Operators are special symbols that do some predefined task on the operands.
They are used to performing operations like arithmetic, logical, etc.
There are following three types of operators in C language.
- Unary Operators
- Binary Operators
- Ternary Operators
Unary Operators
Unary Operators are the operators which require single operand to perform any action.
Examples of unary operator
- sizeof: return the size of an operand in bytes.
Example:
123int i, j;i = sizeof(int); //return 4 bytesj = sizeof(i); //return 4 bytes - increment operator (++): This operator adds 1 to its operand.
Example
12int num = 10;num++; //output: 11 (which is equivalent to num = num + 1)
increment operator is divided into two types- post-increment operator –
12345678int a = 10;printf("a=%d",a++);printf("a=%d",a);/*output:a = 10;a = 11;*/
In this statement first the value of ‘a’ will be printed on screen and then the value of ‘a’ incremented by 1. - pre-increment operator –
12345678int a = 10;printf("a=%d",++a);printf("a=%d",a);/*output:a = 11;a = 11;*/
In this statement first the value of ‘a’ will be incremented by 1 and then the incremented value will be printed on screen.
- post-increment operator –
- decrement operator (–): This operator subtracts 1 from its operand.
Example:
123int num = 10;num--; //output: 9//which is equivalent to num = num - 1;
decrement operator is divided into two types- post-decrement operator –
12345678int a = 10;printf("a=%d",a--);printf("a=%d",a);/*output:a = 10;a = 9;*/
In this statement first the value of ‘a’ will be printed to screen and then the value of ‘a’ decremented by 1. - pre-decrement operator –
12345678int a = 10;printf("a=%d",--a);printf("a=%d",a);/*output:a = 9;a = 9;*/
In this statement first the value of ‘a’ will be decremented by 1 and then the decremented value will be printed on the screen.
- post-decrement operator –
- unary minus operator: unary minus negate the value.
Example:
12int a = 10;int b = -(a); //output: b = -10
Binary Operators
Binary operators are the operators which require two operands to perform any action.
C offers different types of binary operators. they are given as follows
- Arithmetic Operators
- Logical Operators
- Relational Operators
- Bitwise Operators
- Assignment Operators
- Special Operators
Arithmetic Operators
These operators are used to perform arithmetic/mathematical operations.
Below table describes all arithmetic operators.
Assume a = 20 and b = 10.
Operator | Name | Description | Example |
---|---|---|---|
+ | Addition | Adds two operands | a + b = 30 |
– | Subtraction | Subtracts two operands | a – b = 10 |
* | Multiplication | Multiplies two operands | a * b = 200 |
/ | Division | Divides first operand by second | a / b = 2 |
% | Modulus | Returns the remainder of division | a % b = 0 |
Relational Operators
Relational operators are used to compare two values.
The output of relational operators is boolean values i.e. true or false.
Following table describes all relational operators supported by C language
(assume a=5 and b=6)
Operator | Name | Description | Example | Output |
---|---|---|---|---|
= = | Is equal to | Checks whether the two operands are equal or not. If so, it returns true. Otherwise, it returns false. | a = = b | false |
!= | Is not equal to | Checks whether the two operands are equal or not. If so, it returns true. Otherwise, it returns false. | a ! = b | true |
> | Greater than | Checks whether the first operand is greater than the second operand. If so, it returns true. Otherwise it returns false | a > b | false |
< | Less than | Checks whether the first operand is lesser than the second operand. If so, it returns true. Otherwise, it returns false. | a < b | true |
>= | Greater than or equal to | Checks whether the first operand is greater than or equal to the second operand. If so, it returns true. Otherwise, it returns false. | a > = b | false |
< = | Less than or equal to | Checks whether the first operand is lesser than or equal to the second operand. If so, it returns true. Otherwise, it returns false. | a < = b | true |
Logical Operators
This operator is used to test more than one condition.
C supports 3 logical operators.
Following table describes all logical operators with example
(assume x = 5 and y = 10)
Operator | Name | Description | Example | Output |
---|---|---|---|---|
&& | logical AND | It returns true when both conditions are true | (x>5)&&(y<5) | false |
|| | logical OR | It returns true when at-least one of the condition is true | (x>=5)||(y>=10) | true |
! | logical NOT | It is used to reverse state of its operand. If a condition is true, then Logical NOT operator will make it false. | !((x>5)&&(y<5)) | true |
Bitwise Operators
In C, there are 6 bitwise operators.
Consider a = 10 and b = 2 then their binary conversion is
a = 1010
b = 0010
Following is the list of bitwise operators.
Operator | Name | Description | Example | Output |
---|---|---|---|---|
& | Bitwise AND | The result of a&b is 1 only if both bits are 1. | a & b (1010 & 0010) | 2 |
| | Bitwise OR | The result of OR is 1 any of the two bits is 1 | a | b | 10 |
^ | Bitwise XOR | The result of XOR is 1 if the two bits are different. | a ^ b | 8 |
>> | Binary Right Shift | The left operands value is moved right by the number of bits specified by the right operand. | a >> 2 | 2 |
<< | Binary Left Shift | The left operands value is moved left by the number of bits specified by left operand | a << 2 | 40 |
~ | Binary One’s Complement | Inverts all bits. | ~ a | 5 |
Assignment Operators
It is the value assigning operator. After evaluating the expression on the right-hand side, it assigns the value to the variable on the left-hand side.
Following is list of assignment operators (let A = 10)
Operator | Name | Example | |
---|---|---|---|
= | Assignment operator | marks = 10 | |
+= | Increment, then assign | A += 2 (i.e. A = A + 2) | A = 12 |
– = | Decrement, then assign | A -= 2 (i.e. A = A – 2) | A = 8 |
* = | Multiply, then assign | A *= 2 (i.e. A = A * 2) | A = 20 |
/= | Divide, then assign | A /= 2 (i.e. A = A / 2) | A = 5 |
%= | Modulus, then assigns | A %= 2 (i.e. A = A % 2) | A = 0 |
<<= | Left shift and assigns | A <<= 2 (i.e. A = A << 2) | 40 |
>>= | Right shift and assigns | A >>= 2 (i.e. A = A >> 2) | 2 |
&= | Bitwise AND assigns | A &= 2 (i.e. A = A & 2) | 2 |
^= | Bitwise exclusive OR and assigns | A ^= 2 (i.e. A = A ^ 2) | 8 |
|= | Bitwise inclusive OR and assigns | A |= 2 (i.e. A = A | 2) | 10 |
Special Operators
There are two special operators in C language given in following table
Operator | Description | Example |
---|---|---|
& | It returns the address of a variable | &a |
* | It is used as pointer to a variable | *a |
Ternary or conditional Operator ( ? : )
- There is one ternary operator supported by C language
- The ternary operator is also called as “Conditional Operator”.
- Syntax: Condition ? expression1 : expression2
If condition is true expression1 gets executed else expression2. - A ternary operator is a short form of if-else.
Example:
1 2 3 4 5 6 7 8 |
int a = 10; printf("%d\n",(a == 1)? 20 :30); printf("%d",(a == 10)? 20 :30); /* Output: 30 20 */ |
- Ternary operator can be nested as following:
Condition ? expression1(condition1 ? exp 1 :exp 2) : expression2 (condition2 ? exp 1 :exp 2) - For example:
int big, a, b, c ;
big = ( a > b ? ( a > c ? 3: 4 ) : ( b > c ? 6: 8 ) ) ;
This post is amazing.
Nice
Thanks for your response.
Very good information … thanks
Really glad that could help. 🙂
Good one thanks