Operators & Expressions
Operators are symbols to specify the action to be performed on variables or constants or combinations of both. For example, suppose we have two variables say A and B. now what is to be done on these variables is indicated by some operator.
A + B
Operand Operator Operand
Categories:
 Arithmetic operators
 Relational operators
 Logical operators
 Assignment operators
 Increment and Decrement operators
 Conditional operators
 Bitwise operators
 Other operators
 Arithmetic operators:
Arithmetic operations are used for numeric calculations. Say addition, subtraction, multiplication, divide, and module. They are of two types:
(i) Unary arithmetic operator
(ii) Binary arithmetic operators
(i) Unary arithmetic operators:
It requires only one operand
E.g.: +x,y
Here ‘‘change the sign of the operand y.
(ii) Binary arithmetic operator:
Its require two operands. There are five operators for binary
Arithmetic operators:
Operator Meaning Purpose
+ plus addition
– minus subtraction
* asterisk multiplication
/ slash division
% module (percent) gives the remainder in integer division
NOTE: module (%) operator can’t be applied with floating number. There is no exponent operator in C. however there is a library function (pow) to carry out exponent.
Eg:
a+b;
ab;
a/b; Here ‘a’ & ‘b’ are two operands
a*b;
a%b;
(iii) Integer arithmetic
When both operands are integer then the arithmetic operation with these operands is called integer arithmetic.
Eg: let us take two variables a&b. The value of a=17, & b=4
Then result of these operation are:
Expression Result
a+b 17+4=21
ab 174=13
a*b 17*4=68
a/b 17/4=4.5=4( integer decimal not allowed)
a%b 17%4=1 remainder after integer division
NOTE: after division operation the decimal part will be truncated and result is only integer part of quotient.
After modules operation the result will be remainder part of the integer division.
NOTE: it is necessary for division and modules operation that second operand must be nonzero.
Hierarchy of Operations:
Computer scan on expression from left to right and performs only one operation at a time as a human being does. The order in which various operations are performed is termed as hierarchy of operations. Following is the hierarchy for arithmetic operations:
Order of evaluation Arithmetic operations
1 * / %
2 + –
Thus to evaluate an arithmetic expression computer also follows concept similar to BODMAS i.e first bracket, then division, multiplication, addition & subtraction.
(iv) Floating Point Arithmetic:
When both the operands are of float type then the arithmetic operations with these operands is called floating point arithmetic.
Eg: let us take two variables a&b . the value of a=12.4 and b=3.1 , then the result of these operation are as:
Expression Result
a+b 12.4+3.1=15.5
ab 12.43.1=9.3
a*b 12.4*3.1=38.44
a/b 12.4/3.1=4.0
NOTE: the modules operator (%) can’t be used with floating point numbers.
 Relational operator
Relational operators are used to compare two values depending on their relations. It requires two operands.
Expressions that contain the relational operator are called relational expression. If the relation is true then it returns the value 1, if the relation is false then it return the value 0.
These operators are:
Operator Meaning Example (a=8,b=2) Result
< less than 8<2 false
> greater than 8>2 true
<= less than or
equal to 8<=2 false
>= greater then or
equal to 8>=2 true
== equal to 8==2 false
!= not equal to 8!=2 true
 Logical or Boolean operator:
An expression that combines two or more expression is termed as a logical expression. For combining these expression we use the logical operator. After testing the value of the condition (which is true or false) , its gives the logical stuts(true / false) as a net result.
The operands may be constants, variables and expression. C has three logical operators.
Operator Meaning Example Result
&& logical and (8<2)&&(8>3) false
 logical or (8<2)(8>3) true
! logical NOT negation !(8<2) true
Logical AND
When both operands are true , && operands gives result true. But if any of operands is false, it gives value false.
Boolean table :
A  B  C 
T  T  T 
T  F  F 
F  T  F 
F  F  F 
Logical OR
When any one of the input or operand is true , then  (OR) operator gives result true .
Boolean table:
A  B  C 
T  T  T 
T  F  T 
F  T  T 
F  F  T 
Logical NOT
Not gate is also called Compliment gate. Mean ???????????????
4) Assignment operator
A value can be stored in variables with the use of assignment operator.
This assignment operator ”=” is used for assignment statement.
Assignment statement is also used for updating statement.
E.g.:
x=x+5 can also be written as
x+=5
Similarly
5) Increment/Decrement operator:
C has two useful operators increment (++) and decrement (–).These are the unary operators these operate only single operand.
The Increment operator (++) increment the value of the variable by 1 and decrement operator (–) decrement the value of the variable by 1.
We can write this as –
++a or a=a+1
–a or a=a1
These operators are of two types:
1) Prefix increment/decrement
2) Postfix increment/decrement
 i) Prefix increment/decrement
In prefix, first the value of variable is incremented / decremented then value of variable is taken for the operation
Let us take the value of a=3
Then the statement b=++a; means first increment the value of a by 1 then b takes the value of a.
Hence a=4, b=4
The statement b=–a; means first decrement the value of ‘a’ by 1, then b takes the value of “a”
Hence a=3, b=3
 ii) Postfix increment/decrement
Here, first the value of variable is taken for operation then value of variable is incremented/decremented.
Eg: a++ ;
a–;
Let us take the value of a=3 then statement b=a++; means list “b” takes the value of “a” then it incremented it by 1.
Hence a=4 b=3
The statement b=a—means list “b” takes the value of “a” then decrement it by 1
Hence a=2,b=3
 condition operator/ Ternary operator
Ternary operator / Conditional Operator (? &:) requires three operand. This is written as
Eg:
Maximum=a>b? a:b
First the condition a>b is evaluated , if the value is true then the value of “a” is taken by maximum, otherwise value of “b” is given to the maximum.
7) Bitwise operator
C has the ability to support the manipulation of data at the bit level. Bitwise operator are used for operations on bits. Bitwise operators are operated on only integer. The bitwise operators are of given below:
Bitwise operator Meaning
& bitwise AND
 bitwise OR
~ one’s complement
<< left shift
>> right shift
^ bitwise OR
8) Other operator
Comma operator (,) is used to print two different expression to appear in situations where only one expression would be used. The expressions are separated by the comma operator. Since comma operator has the lowest precedence of all operators. Hence the paratheses are necessary for using this operator. eg:
sum=(a=8, b=7, a+b);
first 8 is assign to the variable a, then 7 is assign to the variable b and after this resultant value a+b=15 is assigned to variable sum.
Operator Precedence:
If the expression has more than if must be necessary to give the precedence to each operator. Sometimes there is problem for evaluating the expression when two operators have some precedence. For solving this problem C has the facility to provide the associativity to each other. Precedence & associativity of each operator are given below:
Precedence order

operator

Description

Associativity

1

()  Function call 
Left to right

[]  array expression  
>  structure operator  
.  structure operator  
2

+  unary plus 
Right to left

–  unary minus  
++  increment  
—  decrement  
!  negation  
~  one’s compliment  
&  address


*  value at address  
sizeof  size in bytes  
(type)  type cost


3

* 
Multiplication

Left to right 
/  Division  
%  modulus  
4  +  Addition 
Left to right 
–  subtraction  
5  <<  Left shift  Left to right

>>  Right shift  
6  <  Less than  Left to right

>  Greater than  
<=  Less than equal to  
>=  Greater than equal to  
7  = =  Equal to  Left to right 
!=  Not equal to  
8  &  Bitwise AND  Left to right 
9    Bitwise OR  Left to right 
10  ^  Bitwise XOR  Left to right 
11  &&  Logical AND  Left to right 
12    Logical OR  Left to right 
13  ?:  Ternary  Right to left 
14 
=
*= /= %= += = &= ^= = <<= >>=

assignment  Right to left 
15  ,  Comma  Left to right 
OPERATERS IN C
/EXERCISE/
1.) What do you mean by operator? State various type of operator available in c.
2.) What do you mean by arithmetic operators? State various arithmetic operators in c.
3.) State various relational operators in c.
4.) What do you mean by hi era c h y of operators?
5.) What do mean by logical operator?
6.) Distinguish between prefix and postfix increment operator. Illustrate giving example.
7.) State various assignment op e rat or available in c.
8.) State purpose of conditional operator.
9.) Why we use size of operator.
10.) Distinguish between implicit conversion and explicit conversion.
11.) What do you mean by an arithmetic expression? Write C equivalent of following arithmetic expressions.
(1) a * b
(2) a2b2
(3) b24ac
(4) {a+ b / pq} (d +e)
(5) a /b +c/d
12.) Write C equivalent of following expressions:
(1) a _<b
(2) a=/ b
(3) s in (a2b2)
(4) d >_e
(5) /s(sa) (sb) (sc)
(6) r 2
13.) Evaluate the following expressions;
(1) 4+3*5
(2) 358+6/3
(3) (5+3)*8/2
(4) s q r t . (5*(52)*(54)*(54))
(5) (5+3) > (72)
14.) What will be the value of y?
(Given a=1, b=2, c=8, d=10)
(1) y= c/b*a
(2) y= ca*b
(3) y = (a+ b)(c +d)*b
(4) y =d % c+ b %a
15.) State equivalent C expression for
(1) e * +y_ sin (a/b)
(2) l o g m+ log n
(3) [a +b]
16.) Distinguish between m—and—m giving some example.