Chapter : 2
Data types,
Operators, Expression
- Character set, tokens, identifiers, keywords
- Data types
- Variables, reference variable, constants
- Operators, operator precedence and associativity
- Dynamic initialization of variable
- Expressions and qualifiers
- The iostream.h file
- cin and cout operators
- Cascading of operators
Programming
language is a set of rules, symbols, and special words used to construct
programs. There are certain elements that are common to all programming
languages. Now, we will discuss these elements in brief.
Character
set : Character set is a set of valid characters
that a language can recognize.
Letters
|
A-Z, a-z
|
Digits
|
0-9
|
Special Characters
|
Space + - * / ^
\ () [] {} = != <> ‘
“ $ , ; : % ! & ? _
# <= >= @
|
Tokens : A token is
a group of characters that logically belong together. The programmer can write a program by
using tokens. C++ uses the following types of tokens.
Identifiers : Symbolic
names can be used in C++ for various data items used by a programmer in his
program. A symbolic name is generally known as an identifier. The
identifier is a sequence of characters taken from C++ character set. The rule
for the formation of an identifier (Variable names) is:
1.
An identifier can consist of alphabets, digits and/or
underscores.
2.
It must not start with a digit
3.
C++ is case sensitive that is upper case and lower case
letters are considered different from each other.
4.
It should not be a reserved word.
Keywords : These are some reserved words in C++
which have predefined meaning to compiler called keywords. It is discussed in
previous section.
Keywords are reserve words whose
meaning is already known to compiler.
Following is list of keywords in c++
asm
|
else
|
private
|
Template
|
auto
|
enum
|
protected
|
try
|
Break
|
extern
|
public
|
typedef
|
case
|
float
|
register
|
union
|
catch
|
for
|
return
|
unsigned
|
char
|
friend
|
short
|
virtual
|
class
|
goto
|
signed
|
void
|
const
|
If
|
sizeof
|
volatile
|
continue
|
inline
|
Static
|
while
|
default
|
int
|
Struct
|
|
delete
|
long
|
Switch
|
|
do
|
new
|
this
|
|
double
|
operator
|
throw
|
|
Data Types
In C++ :
" A data type defines which kind of data will store in variables and
also defines memory storage of data"
C++ supports a large number of data types.
The built in or basic data types supported by C++ are integer, floating point
and character.
Built In Data-Types : These data types
are provided by system
Derived Data-Types : These data types
are derived from built in data types
User Define Data-Types : these data types
are created by user as per there requirements
Some commonly used
data types are summarized in table along with description
Type
|
Description
|
int
|
Small integer number
|
long int
|
Large integer number
|
float
|
Small real number
|
double
|
Double precision real number
|
long double
|
Long double precision real number
|
char
|
A Single Character
|
Integer : (int, long int, short int)
These data
type holds numeric values which are without decimal point, they can be positive
or negative.
Example : 12, -23, 14
int
1. int keyword is used for integers.
2. It takes two bytes in memory.
3. The range of int is -32768 to 32767
4. We use long int to stored long
range integer numbers
5. Long int takes 4 bytes in
memory.
6. The range of long int is
-2147483648 to 2147483648
Data type
Bytes Range
of values
int 2 -32768 to 32767
long int 4 -2147483648 to 2147483648
int 2 -32768 to 32767
long int 4 -2147483648 to 2147483648
Floating Point : (float, double)
These data types holds numeric values which contains
decimal point, they can be positive or negative
Example : 12.34, -56.78, -90.09
Data type
Bytes Decimal
places Range of values
float 4 6 3.4E -38 to3.4E+38
double 8 15 1.7E - 308 to1.7E +308
float 4 6 3.4E -38 to3.4E+38
double 8 15 1.7E - 308 to1.7E +308
Character :
A keyword char is used
for character data type.
This data type is used to
represents letters or symbols.
A character variable occupies
1 byte on memory.
Example : ‘A’, ‘z’, ‘#’, etc.
Variables :
A variable provides us with named storage that our programs can
manipulate.
Each variable in C++ has a specific type, which determines the size and
layout of the variable's memory; the range of values that can be stored within that
memory; and the set of operations that can be applied to the variable.
The name of a variable can be composed of letters, digits, and the
underscore character. It must begin with either a letter or an underscore.
Upper and lowercase letters are distinct because C++ is case-sensitive.
Syntax for variable declaration :
Data_Type Variable_Name;
Example : int a, b, c;
float
f;
double
balance;
char
ch;
Variable Initialization : assigning value to the variable is known as
variable initialization
Example :
o
int
a = 20; (Here we initialize variable
at the time of declaration)
o
char
ch;
ch = ‘A’;
(Here we first declare variable then initialize it)
Reference variables : A
reference variable provides an alias (alternative name) for a previously
defined variable. For example:
int total = 100;
int &t = total;
It means both
total and t are same
cout<<total;
cout<<t;
Will return same
value;
We use &
operator to show reference.
& is
reference operator not addressing operator.
If we made any
change in value of t then it reflects it in total
Constants :
A variable which does not change its value
during execution of a program is known as a constant variable.
Any attempt to change the value of a constant
will result in an error message. A constant in C++ can be of any of the basic
data types, const keyword can be used to declare constant as shown below:
const float PI = 3.1415;
The above declaration means that PI is a constant of float types having a value 3.1415.
Examples of valid constant declarations are:
const int RATE = 50;
const float PI = 3.1415;
const char CH = 'A';
Operators :
Operators
are special symbols used for specific purposes. Operator operates on operand
(variables).
Basically
we differentiate operators by number of variables on which they perform
operation
Unary
Operator : These operators operates on single operand (variable).
Example
: - (unary minus), ++ (increment operator), --
(decrement operator)
Binary
Operator : These operators operates on two operands (variables).
Example
: + (plus), - (binary minus), * (multiplication), /
(modulo), etc.
Ternary
Operator : These operator operates on three operands.
Example
: ?: (Conditional operator)
Arithmetic Operators :
Arithmetical operators +, -, *, /,
and % are used to performs an arithmetic (numeric) operation.
You can use the operators +, -, *,
and / with both integral and floating-point data types. Modulus or remainder %
operator is used only with the integral data type.
These operators take two operands (variables) to perform operation that’s why they are known as binary operators.
These operators take two operands (variables) to perform operation that’s why they are known as binary operators.
Relational Operators :
The relational operators are used to
test the relation between two values.
All relational operators are binary operators
and therefore require two operands. A relational expression returns zero when
the relation is false and a non-zero when it is true. The following table shows
the relational operators.
Relational Operators
|
Meaning
|
<
|
Less than
|
<=
|
Less than or equal to
|
==
|
Equal to
|
>
|
Greater than
|
>=
|
Greater than or equal to
|
! =
|
Not equal to
|
Logical Operators :
The logical operators are used to
combine one or more relational expression. The logical operators are
Operators
|
Meaning
|
||
|
OR
|
&&
|
AND
|
!
|
NOT
|
Increment and Decrement Operators
C++ provides two
special operators viz '++' and '--' for incrementing and decrementing the value
of a variable by 1. The increment/decrement operator can be used with any type
of variable but it cannot be used with any constant. Increment and decrement
operators each have two forms, pre and post.
The syntax of the increment operator is:
Pre-increment: ++variable
Post-increment: variable++
The syntax of the decrement operator is:
Pre-decrement: --variable
Post-decrement: variable--
Pre-increment: ++variable
Post-increment: variable++
The syntax of the decrement operator is:
Pre-decrement: --variable
Post-decrement: variable--
Assignment Operator :
The assignment operator '=' is used for assigning a
variable to a value. This operator takes the expression on its right-hand-side
and places it into the variable on its left-hand-side. For example:
x = 30;
Compound assignment Operator :
Operator
|
Example
|
Equivalent to
|
+ =
|
A + = 2
|
A = A + 2
|
- =
|
A - = 2
|
A = A - 2
|
% =
|
A % = 2
|
A = A % 2
|
/=
|
A/ = 2
|
A = A / 2
|
*=
|
A * = 2
|
A = A * 2
|
Conditional operator
The conditional operator ?: is called ternary operator as it requires three
operands. The format of the conditional operator is:
Conditional_ expression ? expression1 : expression2;
If the value of conditional expression is true then the expression1 is evaluated, otherwise expression2 is evaluated.
Conditional_ expression ? expression1 : expression2;
If the value of conditional expression is true then the expression1 is evaluated, otherwise expression2 is evaluated.
int a = 5, b = 6;
big = (a > b) ? a : b;
The condition evaluates to false, therefore biggets the value from b and it becomes 6.
Dynamic Initialization of Variable :
Where we don’t know the value of
variable at compile-time, its computed (calculated) at run-time is known as
dynamic initialization of variable
Example :
// HERE WE INITIALIZE rad AT THE TIME OF
DECLARATION
Int rad = 5;
Const float
pi = 3.14;
Int area;
// HERE WE INIALIZE area DYNAMICALY
area = pi
* rad * rad;
cout<<”
Area of Circle is : ”<<area;
Expressions and qualifiers :
Qualifiers : The type qualifiers
provide additional information about the variable the precede.
Type qualifiers give one of two
properties to an identifier
Example : The const type qualifier declares an variable to
be constant, means we can’t change its value.
const
|
Objects of type const cannot be changed by your program during
execution
|
volatile
|
The modifier volatile tells the compiler that a variable's value
may be changed in ways not explicitly specified by the program.
|
restrict
|
A pointer qualified by restrict is initially the only means by
which the object it points to can be accessed. Only C99 adds a new type
qualifier called restrict.
|
Operators Precedence and associativity :
Operator
precedence determines the grouping of terms in an expression. This affects how
as expression is solve.
Certain
operators have higher precedence than other;
Examle : * has higher precedence than + operator.
X = 7 + 10 * 2;
Here x is assigned 27,
not 34
X = 7 + 10 * 2
X = 7 + 20
X = 27
|
Operator
|
Associativity
|
1
|
() []
|
Left to right
|
2
|
* , /, %
|
Left to right
|
3
|
+ , -
|
Left to right
|
4
|
< , <=, >, >=
|
Left to right
|
5
|
==, !=
|
Left to right
|
6
|
&&
|
Left to right
|
7
|
||
|
Left to right
|
8
|
?:
|
Right to left
|
9
|
=, +=, -=, *=, /=, %=
|
Right to left
|
The iostream.h file :
iostream.h is important header file
in C++, use for input (cin) and output (cout) operations. In C++ input/output
occurs in streams, which are sequences of bytes.
( iostream.h : InputOutputStream headerfile)
If bytes flow from a
device likes a keyboard, a disk drive, or a network connection, etc., to main
memory, this is called input operation.
If bytes flow from main
memory to a device likes a display screen, a printer, a disk drive, or a
network connection, etc., this is called output operation.
This file defines the cin, cout, cerr and clog objects, which
correspond to the standard input stream, the standard output stream, the
un-buffered standard error stream and the buffered standard error stream,
respectively.
Example :
Cout
<< ” Hello ”;
Cin
>> x;
Cin and Cout Operators :
·
Cin Operators (>> Extraction Operator) : these operators use to take input from keyboard.
Example : int a;
cin
>> a;
·
Cout Operator (<< Insertion Operator) : these operators use to display output on
screen (console window).
Example : cout<<” Good Morning Class…!!!”;
cout<<a;
Cascading of operators :
Successive occurrence of input and output
operators (“>>” and “<<”) in C++ can be concatenated.
We have
used the extraction operator << repeatedly in the two statements for
printing results.
Example : cout<<”Total Value is =”<<total<<”\n”;
Example : cout<<”Total Value is =”<<total<<”\n”;
First sends the string “Total Value is=” to
cout and then sends the value of sum. Finally, it sends the new line character
so that the next output will be in the new line. The multiple use of <<
in one statement is called cascading. When cascading an output operator, we
should ensure necessary blank spaces between different items. Using the
cascading technique, the last two statements can be combine as follows.
Cout<<”Total Value is=”<<total<<”\n”<<”average = “<<average;
This is one statement but provides two lines of output.
Total Value is = 15
Average = 7.5
We can also cascade input operator >> as shown below
cin>>n1>>n2>>;
the values are assigned from left to right. That is, if we key in two values, say, 15 and 24 then 15 will be assigned to n1 and 24 will be assigned to