Skip to main content

Operators in C Language

C language supports a rich set of built-in operators. An operator is a symbol that tells the compiler to perform a certain mathematical or logical manipulation. Operators are used in programs to manipulate data and variables.
C operators can be classified into following types:
  • Arithmetic operators
  • Relational operators
  • Logical operators
  • Bitwise operators
  • Assignment operators
  • Conditional operators
  • Special operators

Arithmetic operators

C supports all the basic arithmetic operators. The following table shows all the basic arithmetic operators.
OperatorDescription
+adds two operands
-subtract second operands from first
*multiply two operand
/divide numerator by denominator
%remainder of division
++Increment operator - increases integer value by one
--Decrement operator - decreases integer value by one

Relational operators

The following table shows all relation operators supported by C.
OperatorDescription
==Check if two operand are equal
!=Check if two operand are not equal.
>Check if operand on the left is greater than operand on the right
<Check operand on the left is smaller than right operand
>=check left operand is greater than or equal to right operand
<=Check if operand on left is smaller than or equal to right operand

Logical operators

C language supports following 3 logical operators. Suppose a = 1 and b = 0,
OperatorDescriptionExample
&&Logical AND(a && b) is false
||Logical OR(a || b) is true
!Logical NOT(!a) is false

Bitwise operators

Bitwise operators perform manipulations of data at bit level. These operators also perform shifting of bits from right to left. Bitwise operators are not applied to float or double(These are datatypes, we will learn about them in the next tutorial).
OperatorDescription
&Bitwise AND
|Bitwise OR
^Bitwise exclusive OR
<<left shift
>>right shift
Now lets see truth table for bitwise &| and ^
aba & ba | ba ^ b
00000
01011
10011
11110
The bitwise shift operator, shifts the bit value. The left operand specifies the value to be shifted and the right operand specifies the number of positions that the bits in the value have to be shifted. Both operands have the same precedence.
Example :
a = 0001000
b = 2
a << b = 0100000 
a >> b = 0000010 

Assignment Operators

Assignment operators supported by C language are as follows.
OperatorDescriptionExample
=assigns values from right side operands to left side operanda=b
+=adds right operand to the left operand and assign the result to lefta+=b is same as a=a+b
-=subtracts right operand from the left operand and assign the result to left operanda-=b is same as a=a-b
*=mutiply left operand with the right operand and assign the result to left operanda*=b is same as a=a*b
/=divides left operand with the right operand and assign the result to left operanda/=b is same as a=a/b
%=calculate modulus using two operands and assign the result to left operanda%=b is same as a=a%b

Conditional operator

The conditional operators in C language are known by two more names
  1. Ternary Operator
  2. ? : Operator
It is actually the if condition that we use in C language decision making, but using conditional operator, we turn the if condition statement into a short and simple operator.
The syntax of a conditional operator is :
expression 1 ? expression 2: expression 3
Explanation:
  • The question mark "?" in the syntax represents the if part.
  • The first expression (expression 1) generally returns either true or false, based on which it is decided whether (expression 2) will be executed or (expression 3)
  • If (expression 1) returns true then the expression on the left side of " : " i.e (expression 2) is executed.
  • If (expression 1) returns false then the expression on the right side of " : " i.e (expression 3) is executed.

Special operator

OperatorDescriptionExample
sizeofReturns the size of an variablesizeof(x) return size of the variable x
&Returns the address of an variable&x ; return address of the variable x
*Pointer to a variable*x ; will be pointer to a variable x

Comments

Popular posts from this blog

Recursive program to insert a star between pair of identical characters

Given a string with repeated characters, we have to insert a star i.e. ” * “  between pair of adjacent identical characters using recursion. Examples: Input : aabb Output : a*ab*b Input : xxxy Output : x*x*xy Recommended: Please try your approach on  {IDE}  first, before moving on to the solution. Approach: If there is an empty string then simply return. This forms our  base condition . Else we do the following- Check if the first two characters are identical. If yes, then insert ” * ” between them. As we have now checked for identical characters at first two positions of the string so we now make a recursive call  without the first character of the string . The above approach has been implemented below: C filter_none edit play_arrow brightness_4 // Recursive CPP program to insert * between // two consecutive same characters. #include <iostream> using namespace std;     // Funct...

Count the number of objects using Static member function

Write a program to design a class having static member function named showcount() which has the property of displaying the number of objects created of the class. Explanation:  In this program we are simply explaining the approach of static member function. We can define class members and member functions as static using static keyword. Before understanding static member function, we must understand static member. When we declare a member of a class as static it means no matter how many objects of the class are created, there is  only one copy of the static member . Important points about Static : A static member is shared by all objects of the class, all static data is initialized to zero when the first object is created, if no other initialization is present. A static member function can only access static data member, other static member functions and any other functions from outside the class. By declaring a function member as static, we make it independent of any ...

C program to evaluate the net salary of an employee given the following constraints

Given the following constrains and we have to calculate net salary of an employee. Basic salary  : $ 12000 DA  : 12% of Basic salary HRA  : $150 TA  : $120 Others  : $450 Tax cuts  – a) PF :14% of Basic salary and b) IT: 15% of Basic salary Net Salary  = Basic Salary + DA + HRA + TA + Others – (PF + IT) Consider the program: # include < stdio.h > //main program int main ( ) { //variable to store values float basic , da , hra , ta , others ; float pf , it ; float net_salary ; //input required fields printf ( " Enter Basic Salary ($): " ) ; scanf ( " %f " , & basic ) ; printf ( " Enter HRA ($): " ) ; scanf ( " %f " , & hra ) ; printf ( " Enter TA ($): " ) ; scanf ( " %f " , & ta ) ; printf ( " Enter others ($): " ) ; scanf ( " %f " , & others ) ; //calculate DA 12% of Basic Salary da = ( basic * 12 ) / 100 ; //calculate PF 1...