OPERATOR
An operator is a symbol that tells the compiler to perform specific
mathematical or logical manipulations. C++ is rich in built-in operators and
provide the following types of operators −
Arithmetic Operators
Relational Operators
Logical Operators
Bitwise Operators
Assignment Operators
Misc Operators
This chapter will examine the arithmetic, relational, logical, bitwise,
assignment and other operators one by one.
Arithmetic Operators
There are following arithmetic operators supported by C++ language −
Assume variable A holds 10 and variable B holds 20, then −
Show Examples
Operato Description Example
r
+ Adds two operands A + B will give 30
- Subtracts second operand from A - B will give -10
the first
* Multiplies both operands A * B will give 200
/ Divides numerator by de- B / A will give 2
numerator
% Modulus Operator and remainder B % A will give 0
of after an integer division
++ Increment operator, increases A++ will give 11
integer value by one
-- Decrement operator, decreases A-- will give 9
integer value by one
Relational Operators
There are following relational operators supported by C++ language
Assume variable A holds 10 and variable B holds 20, then −
Show Examples
Operato Description Example
r
== Checks if the values of two (A == B) is not true.
operands are equal or not, if yes
then condition becomes true.
!= Checks if the values of two (A != B) is true.
operands are equal or not, if
values are not equal then
condition becomes true.
> Checks if the value of left operand (A > B) is not true.
is greater than the value of right
operand, if yes then condition
becomes true.
< Checks if the value of left operand (A < B) is true.
is less than the value of right
operand, if yes then condition
becomes true.
>= Checks if the value of left operand (A >= B) is not true.
is greater than or equal to the
value of right operand, if yes then
condition becomes true.
<= Checks if the value of left operand (A <= B) is true.
is less than or equal to the value
of right operand, if yes then
condition becomes true.
Logical Operators
There are following logical operators supported by C++ language.
Assume variable A holds 1 and variable B holds 0, then −
Show Examples
Operato Description Example
r
&& Called Logical AND operator. If (A && B) is false.
both the operands are non-zero,
then condition becomes true.
|| Called Logical OR Operator. If any (A || B) is true.
of the two operands is non-zero,
then condition becomes true.
! Called Logical NOT Operator. Use !(A && B) is true.
to reverses the logical state of its
operand. If a condition is true,
then Logical NOT operator will
make false.
Bitwise Operators
Bitwise operator works on bits and perform bit-by-bit operation. The truth
tables for &, |, and ^ are as follows −
p q p&q p|q p^q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
Assume if A = 60; and B = 13; now in binary format they will be as follows
−
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
The Bitwise operators supported by C++ language are listed in the following
table. Assume variable A holds 60 and variable B holds 13, then −
Show Examples
Operato Description Example
r
& Binary AND Operator copies a bit
(A & B) will give 12 which is 0000
to the result if it exists in both
1100
operands.
| Binary OR Operator copies a bit if (A | B) will give 61 which is 0011
it exists in either operand. 1101
^ Binary XOR Operator copies the
(A ^ B) will give 49 which is 0011
bit if it is set in one operand but
0001
not both.
~ Binary Ones Complement (~A ) will give -61 which is 1100
Operator is unary and has the 0011 in 2's complement form due
effect of 'flipping' bits. to a signed binary number.
<< Binary Left Shift Operator. The
left operands value is moved left A << 2 will give 240 which is
by the number of bits specified by 1111 0000
the right operand.
>> Binary Right Shift Operator. The
left operands value is moved right A >> 2 will give 15 which is 0000
by the number of bits specified by 1111
the right operand.
Assignment Operators
There are following assignment operators supported by C++ language −
Show Examples
Operato Description Example
r
= Simple assignment operator,
C = A + B will assign value of A
Assigns values from right side
+ B into C
operands to left side operand.
+= Add AND assignment operator, It
adds right operand to the left C += A is equivalent to C = C
operand and assign the result to left +A
operand.
-= Subtract AND assignment operator,
It subtracts right operand from the C -= A is equivalent to C = C -
left operand and assign the result to A
left operand.
*= Multiply AND assignment operator,
It multiplies right operand with the C *= A is equivalent to C = C *
left operand and assign the result to A
left operand.
/= Divide AND assignment operator, It
divides left operand with the right C /= A is equivalent to C = C /
operand and assign the result to left A
operand.
%= Modulus AND assignment operator,
It takes modulus using two C %= A is equivalent to C = C
operands and assign the result to %A
left operand.
<<= Left shift AND assignment operator. C <<= 2 is same as C = C <<
2
>>= Right shift AND assignment C >>= 2 is same as C = C >>
operator. 2
&= Bitwise AND assignment operator. C &= 2 is same as C = C & 2
^= Bitwise exclusive OR and
C ^= 2 is same as C = C ^ 2
assignment operator.
|= Bitwise inclusive OR and assignment
C |= 2 is same as C = C | 2
operator.
Misc Operators
The following table lists some other operators that C++ supports.
Sr.No Operator & Description
1
sizeof
sizeof operator returns the size of a variable. For example, sizeof(a),
where ‘a’ is integer, and will return 4.
2 Condition ? X : Y
Conditional operator (?). If Condition is true then it returns value of X
otherwise returns value of Y.
3
,
Comma operator causes a sequence of operations to be performed. The
value of the entire comma expression is the value of the last expression
of the comma-separated list.
4 . (dot) and -> (arrow)
Member operators are used to reference individual members of classes,
structures, and unions.
5
Cast
Casting operators convert one data type to another. For example,
int(2.2000) would return 2.
6 &
Pointer operator & returns the address of a variable. For example &a;
will give actual address of the variable.
7
*
Pointer operator * is pointer to a variable. For example *var; will
pointer to a variable var.
Operators Precedence in C++
Operator precedence determines the grouping of terms in an expression.
This affects how an expression is evaluated. Certain operators have higher
precedence than others; for example, the multiplication operator has higher
precedence than the addition operator −
For example x = 7 + 3 * 2; here, x is assigned 13, not 20 because operator
* has higher precedence than +, so it first gets multiplied with 3*2 and
then adds into 7.
Here, operators with the highest precedence appear at the top of the table,
those with the lowest appear at the bottom. Within an expression, higher
precedence operators will be evaluated first.
Show Examples
Category Operator Associativity
Postfix () [] -> . ++ - - Left to right
Unary + - ! ~ ++ - - (type)* & sizeof Right to left
Multiplicative * / % Left to right
Additive + - Left to right
Shift << >> Left to right
Relational < <= > >= Left to right
Equality == != Left to right
Bitwise AND & Left to right
Bitwise XOR ^ Left to right
Bitwise OR | Left to right
Logical AND && Left to right
Logical OR || Left to right
Conditional ?: Right to left
Assignment = += -= *= /= %=>>= <<= &= ^= |= Right to left
Comma , Left to right
LOOPS
Loops in programming comes into use when we need to repeatedly execute a block of
statements.
C++ programming language provides the following type of loops to handle
looping requirements.
Sr.No Loop Type & Description
1 while loop
Repeats a statement or group of statements while a given condition is
true. It tests the condition before executing the loop body.
2 for loop
Execute a sequence of statements multiple times and abbreviates the
code that manages the loop variable.
3 do...while loop
Like a ‘while’ statement, except that it tests the condition at the end of
the loop body.
4 nested loops
You can use one or more loop inside any another ‘while’, ‘for’ or
‘do..while’ loop.
Loop Control Statements
Loop control statements change execution from its normal sequence. When
execution leaves a scope, all automatic objects that were created in that
scope are destroyed.
C++ supports the following control statements.
Sr.No Control Statement & Description
1 break statement
Terminates the loop or switch statement and transfers execution to the
statement immediately following the loop or switch.
2 continue statement
Causes the loop to skip the remainder of its body and immediately retest
its condition prior to reiterating.
3 goto statement
Transfers control to the labeled statement. Though it is not advised to
use goto statement in your program.
The Infinite Loop
A loop becomes infinite loop if a condition never becomes false.
The for loop is traditionally used for this purpose. Since none of the three
expressions that form the ‘for’ loop are required, you can make an endless
loop by leaving the conditional expression empty.
#include <iostream>
using namespace std;
int main () {
for( ; ; ) {
printf("This loop will run forever.\n");
return 0;
When the conditional expression is absent, it is assumed to be true. You
may have an initialization and increment expression, but C++ programmers
more commonly use the ‘for (;;)’ construct to signify an infinite loop.
NOTE − You can terminate an infinite loop by pressing Ctrl + C keys.