Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

Unit-2 (Operators)

ANAND KR.SRIVASTAVA

1
Operators in C ( use of operators in C )

Operators are the symbol , to perform some


operation ( calculation , manipulation).
&
Set of Operations are used in completion of any
task.
&
C is the Programming language to perform some
task.

2
Operands & Operators

• Any operation is a combination of two things:


1. Operands 2.Operator
• Operators works on operands.
• Operands may be – A Data Value
A Data Variable
A Expression
Examples: 10 + 4 , a - 3 , b + c ,
(a+b)+(b+10)
Here, 10,4,3 are Data values and a,b ,c are variables.
3
Types of Operators

On the basis of number of operands, operators are


divided into three types:-

 Unary Operators – Acts upon one operand


 Binary Operators – Acts upon two operands
 Ternary Operators – Acts upon three operands.

4
Types of Operators:-
( On the basis of features of operators)

 Increment or Decrement Operator ( Unary)


 Arithmetic Operators
 Relational Operators
 Logical Operators Binary
 Assignment Operators
 Bitwise Operators
 Conditional Operators ( Ternary)
 Special Operators
5
Arithmetic Operators

Operator Symbol Action Example

Addition + Adds operands x+y


Subtraction - Subs second from first x-y
Negation - Negates operand -x
Multiplication * Multiplies operandsx * y
Division / Divides first by second x/y
(integer quotient)
Modulus % Remainder of divide op x%y

6
Relational Operators (Relational comparison )

 Comparisons can be done with the help of relational


operators
 These consist of:-

Operator Meaning
< less than
<= less than equal to
> greater than
>= greater than equal to
== Equal to
!= Not equal to
7
Logical Operators ( Logical comparison )

 Expression which combines two or more relational


expression is termed as a logical or compound relational
expression
The result of these operators is either TRUE or FALSE.
Logical expressions are:-
&& logical AND
|| Logical OR
! Logical NOT

Ex- if (age>55 && salary <1000)

8
Assignment Operator

 Used to assign the result of an expression to a variable.


ex- int i=20;

1. Simple Assignment e.g. =


2. Compound Assignment e.g. +=, -=, *=, /=, &=
3. Expression Assignment e.g. a=5+(b=8 + (c=2)) - 4

9
Operators continued……..

x + = y+1;
is same as x = x + (y+1)

i.e. += means „add y+1 to x‟


Similarly……..
a=a-1 a - = 1;
a=a*(n+1) a *= n+1;
a=a/(n+1) a/= n+1;

Q: int z=10; z += 34; z *= 2 ; z -=5; z += z+1;


10
Increment and Decrement

 C has two very useful operators not generally found in other


languages. These are the increment and decrement operators.
i.e ++ and --

++ operator adds 1 to the operand and -- operator subtracts 1 to the


operand . Both these operators are unary operators and take the
following form.
++m (prefix operator) ; or m++ (postfix operator);
--m; or m--;
++m & m++ means m = m+1;
-- m & m-- means m = m-1;

11
Ex…

int m = 5 , y ;
y = ++m ;
printf ( “ %d%d " y,m );

Result???

int m = 5 , y ;
y = m++ ;
printf ( “ %d%d " y,m );

Result?????

12
Conditional Operator..

 A ternary operator pair “?:” is available in C to construct


conditional expressions of the form.
exp1 ? exp2 : exp3;

Operator ?: works as follows: exp1 is evaluated first . If it is


nonzero (true) ,then the expression exp2 is evaluated and
becomes the value of the expression otherwise vice versa.

13
Example….

a=10 ;
b=15;
x=(a>b) ? a : b;

It can be written as …
if ( a > b )
x = a;
else
x=b;

14
Bitwise Operator….

 C has distinction of supporting special operators known as


Bitwise Operators for manipulation of data at bit level. These
are used to test bits.
Operators Meaning
& bitwise AND
| bitwise OR
^ bitwise exclusive OR
(Ex-OR)
<< shift left
>> shift right
~ One‟s complement
15
Bitwise Operator….

Examples - int a = 4, b = 3
a = 0000 0100
b = 0000 0011
--------------
a & b = 0000 0000
a | b = 0000 0111
a ^ b = 0000 0111
In Ex-OR (if both bits are same : 0) (if both bits are diff : 1)
a = 10
b = ~ a => ~ (1010) => 0101
16
B Bitwise operators
 The shift operator:
 x << n
 Shifts the bits in x n positions to the left, shifting in zeros on
the right.
 If x = 1111 1111 1111 00002
x << 1 equals 1111 1111 1110 00002
 x >> n
 Shifts the bits in x n positions right.
 shifts in 0 if it is an unsigned integer
 x >> 1 is 0111 1111 1111 10002 (unsigned)

17
Operator Precedence( priority)
D
 Parenthesis E
C
 Unary operator ( ~, ++ ,--,-) R
E
 Arithmetic ( first - /,%,* then +,-) A
S
 Shift Left & Right I
N
 Comparison ( first- >,>=,<,<= then ==,!=) G

 Bitwise AND OR NOT O


R
 Logical AND OR D
E
 Conditional Operator R

 Assignment
18
Operator Precedence
Operator Precedence Associativity
() 1 L to R
~, ++, --, unary - 2 R to L
*, /, % 3 L to R
+, - 4 L to R
<<, >> 5 L to R
<, <=, >, >= 6 L to R
==, != 7 L to R
& 8 L to R
^ 9 L to R
! 10 L to R
&& 11 L to R
|| 12 L to R
?: 13 R to L
=, +=, -=, etc. 14 R to L

19
Special Operators

• comma(,) {Left to Right}


• Sizeof(parameter) { show the size of given parameter)
• Address operator(&)
• Pointer operator(* )
• Member selection operator( . And ->)

Q: int z= ( a=3 , b = 2 , c=4 , a+b+c);

20
Problems

Q1. a = 2 * 3 % 4 + 4 / 4 + 8 – (-2) + 5 / 8

Q2. kk = 3 / 2 * 4 % 3 + 3 / 8 + 3

Q3. int i = 4, j = -1, k = 0, y, z ;


y = i + 5 && j + 1 || k + 2 ;
z = i + 5 || j + 1 && k + 2 ;
printf ( "\ny = %d z = %d", y, z ) ;

21
Problems

Q4. int i = 4, j = -1, k = 0, w, x, y, z ;


w = i || j || k ;
x = i && j && k ;
y = i || j && k ;
z = i && j || k ;
printf ( "\nw = %d x = %d y = %d z = %d", w, x, y, z ) ;

Q5. int z , x = 5, y = - 10 , a = 4, b = 2
z = x ++ - - y * b / a

22
Problems

Q6. int a = 10, b


b = a++ + ++ a; Print a , b

Q7. int a = 4; printf(―%d%d‖, a++ + ++a, a++);

Q8. int i = 5;
printf(―%d‖, i = ++i = = 6);

23
Problems

Q9. int a = 3, b
b = ++a + ++ a + ++a; Print a , b

Q10. int a = 4, b ;
b = a++ + a++ + a++; Print a , b

Q11. int i = 5, j ;
j = ++i + i++ + ++i; Print i , j

24
Problems

Q12. Point out the errors, if any—

(a) int 314.562 * 150;

(b) name = ’Ajay’ ;

(c) Varchar = ’3’ ;

(d) 3.14 * r * r * h = vol_of_cyl ;

(e) area = 3.14 * r ** 2;

(f) a = b = 3 = 4 ;

25
Problems

Q13. void main()


{ float a = 5, b = 2;
int c;
c = a % b; printf(‖%d‖, c);

Q14. int c=0,d=5,e=10,a;


a=c>1?d>1||e>1?10:20:30;
printf(―a=%d‖,a);

26
Problems

Q15. int x, y, z ;
x=y=z=1;
z= ++x + ++y + ++z;
printf(―%d%d%d‖,x,y,z);

Q16. #define x 5+2


void main( )
{ int a;
a = x * x * x;
printf(―%d‖, a); }

27
Problems

Q17. void main( )


{ int a;
a=sizeof( 5.6 );
printf("%d",a); }

Q18. int a=0,b=10;


if(a=0){
printf("true");
}
else{
printf("false");
}

28

You might also like