Need for Structures:
• Arrays can be used to represent a group of data items that belongs to the same type, such as int or float.
• However, if we want to represent a collection of data items of different types using a single name, then we cannot use array.
• C++ supports a user-defined data type known as STRUCTURE.
• A Structure is convenient tool for handing a group of logically related data items.
Structure Declaration:
Declaration of a structure specifies the grouping of various data items into a single unit.
Syntax:
Struct structure name
{
datatype member1; datatype member2;
…..
}
• Structure declaration can be written in a program either above main() or inside main()
• The structure declaration starts with the structure header, which consist of the keyword struct followed by a structure name.
• Structure name can be used for creating structure variables.
• The individual members of the structure are enclosed between the curly braces and
they can be of the same or different data type.
For example:
struct student
{
int roll_no; char name[25]; char branch[15]; int marks; };
structure name -> student
Structure definition:
Structure definition creates structure variables and allocates storage space for them. Structure variable can be created at the point of declaration itself, or by using the structure name explicitly as and when required.
Syntax:
struct structure name var1,var2….; struct keyword is an optional. Var1,var2 -> structure variables.
Example: struct student s1; (or) student s1;
Memory allocation of the members the structure student: struct student
{
int roll_no; char name[25]; char branch[15]; int marks; };
student s1;
The structure variables can be created during the declaration of a structure as follows:
struct student
{
int roll_no; char name[25]; char branch[15]; int marks; }s1;
Accessing Structure Members:
C++ provides the period or dot(.) operator to access the members of a structure independently.
Dot operator connects a structure variable and its member.
Syntax: structure variable. member name struct student
{
int roll_no; char name[25]; char branch[15]; int marks; }s1;
Each member of the structure can be accessed using structure variable. S1.name S1.roll_no
S1.branch
S1.marks
Structure Initialization
Similar to the standard data type, structure variables can be initialized at the point of their definition.
Consider the following structure declaration struct student
{
int roll_no; char name[25]; char branch[15]; int marks; };
The members of the structure student can be initialized during variable creation itself.
Student s1={5,”abc”,”computer”,240};
Example: Structure member initialization at the point of definition: #include<iostream.h> //structure declaration struct date
{
int day; int month; int year; }; void main()
{
date d1={14,10,1983}; date d2={03,11,1984}; cout<<”Birthday”; cout<<d1.day<<”-“<<d1.month<<”-“<<d1.year; cout<<d2.day<<”-“<<d2.month<<”-“<<d2.year;
}
Output:
Birthday: 22-07-2016 03-11-1984
Difference between structure and class
S.No.
|
Structure
|
Class
|
1.
|
Default access level for its
|
Default access level for its members
|
members are public
|
are public and protected
| |
2.
|
It can not be inherited
|
It can be inherited
|
3.
|
It contains data members
|
It contains data members and
|
member functions
| ||
4.
|
We cant initialize value to the
|
We can assign values to variables
|
variables inside the struct body
|
inside the class
| |
5.
|
There is no data hiding
|
Data is hidden
|
UNION
Union Declaration:
Declaration of a union specifies the grouping of various data items into a single
unit.
Syntax:
union union name
{
datatype member1; datatype member2;
--------------------
datatype member’n’;
};
union union name var1,var2,…;
The initialization, accessing of union members through union variable are similar to structure.
Eg. Program: union person
{
char name[25]; int age;
float salary; }p1;
void main()
{
cout<<”Enter details of the person”; cin>>p1.name>>p1.age>>p1.salary; cout<<”Name:” << p1.name; cout<<”Age:” << p1.age; cout<<”Salary:” << p1.salary;
}
Difference between structure and Union
S.No.
|
Structure
|
Union
|
1.
|
Allocates storage space for
|
Allocates one common storage space for all
|
all its members separately.
|
its members. Union finds that which of its
| |
member needs high storage space over other
| ||
members and allocates that much space
| ||
2.
|
We can access all members
|
We can access only one member of union at
|
of structure at a time.
|
a time.
| |
3.
|
It occupies higher memory
|
It occupies lower memory space over
|
space.
|
structure.
| |
4.
|
Structure example:
|
Union example:
|
struct student
|
union student
| |
{
|
{
| |
int mark;
|
int mark;
| |
char name[6];
|
char name[6];
| |
double average;
|
double average;
| |
};
|
};
|