Operators in C

Operators

The operator is a symbol that tells the compiler to perform any mathematical or logical operation. There are a number of built-in-operators in C programming.

operators in c

Important:

  • The symbols, however, are used to perform any type of mathematical and logical operation.
  • In C programming, they are called Operators.
  • In the programming, operators are used to manipulate data and variables.
  • The combination of operands and operators is called expression.
  • Operands are variables that perform some operations in conjunction with the operators.
Operators in C

Types of operators

  • Unary operator:- These types of operators are used only with one operand.
  • Binary operator:-These types of operators are used with two operands.

Arithmetic operator

  • The arithmetic operators is used to perform mathematical operations like addition, subtraction division and multiplication etc.
  • Below is a list for the type and function of these operators. Assume A=5 and B=10
Operator Function performed by operator Example
+ Adds two operands(float, integer etc.) A + B = 15
Subtracts  2nd operand from the 1st one. A − B = -5
* Multiplies the operands. A * B = 50
/ Divides numerator by denominator. B / A = 2
% Returns remainder after dividing 1st operand with second one. B % A = 0
++ Increment operator increases the integer value by one. ++A = 6
Decrement operator decreases the integer value by one. A– = 4

Program to demonstrate arithmetic operator

Run
#include<stdio.h>
#include<conio.h>
int main()
{
    int a = 5,b = 10,c;
    c = a+b;
    printf("a+b = %d \n",c);
    c = a-b;
    printf("a-b = %d \n",c);
    c = a*b;
    printf("a*b = %d \n",c);
    c = a/b;
    printf("a/b = %d \n",c);
    c = b%a;
    printf("b modulus a= %d \n",c);
    c=++a;
    printf("a++= %d \n",c);
    a=5;
    c=a--;
    printf("a--= %d \n",a);
    return 0;
}

Output

a+b = 15 
a-b = -5 
a*b = 50 
a/b = 0 
b modulus a= 0 
a++= 6 
a--= 4 

Relational operator

  • Relational operators are used to compare values of two variables.
  • As you can use these operators, you can find out, whether the values of any two variables are equal or not.
  • If not equal, then the value of which variable is big and which variable’s value is small.
  • Such operators are used with conditional statements.
  • These operators are used to check the condition.
  • when the condition is true, the value becomes true and the values becomes false when the condition is false.
  • All the relational operators that are being used in C language are given below. Assume A=5, B=10
Operator Function performed by operator Example
== Compares if the values of two operands are equal or not. If yes, then the condition becomes true, false otherwise. (A == B) is not true.
!= Compares if the values of two operands are equal or not. If the values are not equal, then the condition becomes true, false otherwise. (A != B) is true.
> Compares if the value of left operand is greater than the value of right operand. If yes, then the condition becomes true, false otherwise. (A > B) is not true.
< Compares if the value of left operand is less than the value of right operand. If yes, then the condition becomes true, false otherwise. (A < B) is true.
>= Compares if the value of left operand is greater than or equal to the value of right operand. If yes, then the condition becomes true, false otherwise. (A >= B) is not true.
<= Compares if the value of left operand is less than or equal to the value of right operand. If yes, then the condition becomes true, false otherwise. (A <= B) is true.

Program to demonstrate use of Relational operator

Run
#include<stdio.h>
#include<conio.h>
int main()
{
    int a = 5, b = 10;
    printf("a=5, b=10\n");
    printf("%d == %d is %d \n", a, b, a == b);
    printf("%d != %d is %d \n", a, b, a != b);
    printf("%d > %d is %d \n", a, b, a > b);
    printf("%d < %d is %d \n", a, b, a < b); 
    printf("%d >= %d is %d \n", a, b, a >= b);
    printf("%d <= %d is %d \n", a, b, a <= b);
    return 0;
}

Output

a=5, b=10
5 == 10 is 0 
5 != 10 is 1 
5 > 10 is 0 
5 < 10 is 1 
5 >= 10 is 0 
5 <= 10 is 1

Logical operator

  • The logic gate can be applied (finds application in mathematical operations too) with these operator.
  • Logical operators are used with decision making statements.
  • These operators are used to check two condition together in control statements.
  • The table about logical operators is being given. Assume A=5, B=10.
Operator Function performed by operator Example
&& Logical AND operator. If both the conditions are satisfied then the condition becomes true . (A>8 && B==10) is false.
|| Logical OR Operator. If any of the conditions are satisfied, then the condition becomes true. (A>8 || B==10) is true.
! Logical NOT Operator. It is used to reverse the logical state of its operand. If a condition is true, then Logical NOT operator will make it false. !(A>8 || B==10) is false.

Program to demonstrate use of logical operator

Run
#include<stdio.h>
#include<conio.h>
int main()
{
    int a = 5, b = 10;
    printf("(a>8 && b==10) will return %d",(a>8)&&(b==10));
    printf("\n(a>8 || b==10) will return %d",(a>8)||(b==10));
    printf("\n!(a>8 || b==10) will return %d",!((a>8)||(b==10)));
    return 0;
}

Output

 Bitwise operator

  • The Bitwise operators work on bits of a integer value.
  • Bitwise operators are used to perform bit level operations on given variables.
  • The decimal values of the variables are converted to bits.
  • After this the operations are performed on those bits, to understand it lets recall some basics :-
p q p & q p | q
0 0 0 0
0 1 0 1
1 1 1 1
1 0 0 1
  • Assume A = 50 and B = 10 in binary, they can be written as:
  • A = 0011 0010 B = 0000 1010
  • And bitwise comparison A&B= 0000 0010
  • OR bitwise comparison A|B=0011 1010
  • And then assume A=50, B=10
Operator Function performed by operator Example
& Binary AND Operator copies a bit to the result if it exists in both operands else copies zero. (A & B) = 2
| Binary OR Operator copies a bit if it exists in either operand. (A | B) = 58
^ Bitwise exclusive OR Operator. If the corresponding bit of any of the operand is 1 then the output would be 1, otherwise 0. (A ^ B) = 56
~ Binary compliment operator i.e.- 0 changes to 1 and 1 to 0 (~A ) = -51
<< Binary Left shift Operator which rotates the number of bits to the left by specified positions as mentioned on the right. A << 2 = 200
>> Binary Right Rotation Operator which rotates the number of bits to right by specified positions as mentioned on the right. A >> 2 = 12

Program to demonstrate use of Bitwise operator

Run
#include<stdio.h>
#include<conio.h>
int main()
{
   int a =50, b =10;
   printf("a&b = %d", a&b);
   printf("\na|b = %d", a|b);
   printf("\na^b = %d", a^b);
   printf("\n~a = %d", ~a);
   printf("\na<<2 = %d",a<<2);
   printf("\na>>2 = %d", a>>2);
   return 0;
}

Output

a&b = 2
a|b = 58
a^b = 56
~a = -51
a<<2 = 200 
a>>2 = 12

 Assignment operator

  • Assignment operators are used to assign values of variables to each other.
  • The operator which changes the value of the operands themselves, here is how they work.
Operator Function performed by operator Example
= Simple assignment operator. Assigns values from right side operands to left side operand C = A + B will assign the value of A + B to C
+= Add AND assignment operator. It adds the right operand to the left operand and assign the result to the left operand. C += A is equivalent to C = C + A
-= Subtract AND assignment operator. It subtracts the right operand from the left operand and assigns the result to the left operand. C -= A is equivalent to C = C – A
*= Multiply AND assignment operator. It multiplies the right operand with the left operand and assigns the result to the left operand. C *= A is equivalent to C = C * A
/= Divide AND assignment operator. It divides the left operand with the right operand and assigns the result to the left operand. C /= A is equivalent to C = C / A
%= Modulus AND assignment operator. It takes modulus using two operands and assigns the result to the left operand. C %= A is equivalent to C = C % A
<<= Left shift AND assignment operator. C <<= 2 is same as C = C << 2
>>= Right shift AND assignment operator. C >>= 2 is same as C = C >> 2
&= Bitwise AND assignment operator. C &= 2 is same as C = C & 2
^= Bitwise exclusive OR and assignment operator. C ^= 2 is same as C = C ^ 2
|= Bitwise inclusive OR and assignment operator. C |= 2 is same as C = C | 2

Program to demonstrate use of assignment operator

Run
#include<stdio.h>
#include<conio.h>
int main()
{
    int a = 10, c;
    c = a;      // c is 5
    printf("c = %d\n", c);
    c += a;     // c is 10 
    printf("c = %d\n", c);
    c -= a;     // c is 5
    printf("c = %d\n", c);
    c *= a;     // c is 25
    printf("c = %d\n", c);
    c /= a;     // c is 5
    printf("c = %d\n", c);
    c %= a;     // c = 0
    printf("c = %d\n", c);
    return 0;
}

Output

c = 10
c = 20
c = 10
c = 100
c = 10
c = 0

Prime Course Trailer

Related Banners

Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription

 Misc operator

  • There are a few more miscellaneous operator worth mentioning
Operator Function performed by operator Example
sizeof() Returns the size of a variable. sizeof(a), for an integer value, it returns 4.
& Returns the address of a variable. &a; returns the address of the memory location of variable.
* Pointer to a variable. *a;
? : Conditional Expression. If Condition is true ? then value X : otherwise value Y

Get over 200+ course One Subscription

Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others

Checkout list of all the video courses in PrepInsta Prime Subscription

Checkout list of all the video courses in PrepInsta Prime Subscription

(a>8 && b==10) will return 0
(a>8 || b==10) will return 1
!(a>8 || b==10) will return 0