CP Module 4 Structure and Union
CP Module 4 Structure and Union
&
UNION
Data Structures
Data Types
Derived User
Fundamental
Types Defined
Types
Types
•Arrays
•Integral Types •Structures
•Functions
•Float Types •Unions
•Pointers
•Character Types •Enumerations
What is a Structure Data Type
•A structure is a user defined data type that groups logically
related data items of different data types into a single unit.
•Structures help to organize complex data in a meaningful way.
•A variable of structure type can store multiple data items of
different data types under the one name.
•Similar to the concept of records.
Definition of Structure
A structure has to defined, before it can used. The syntax of defining a
structure is
struct struct_name
{
data_type variable_name;
data_type variable_name;
……..
data_type variable_name;
};
Example of Structure
The structure of Employee is declared as
struct employee
{
int emp_id;
char name[20];
float salary;
char address[50];
int dept_no;
int age;
};
Rules
In defining a structure following rules to be noted
1. The template is terminated with a semicolon.
2. Each member is declared separately within structure.
Array Vs Structures
1. Array is a collection of related data elements of same type. Structure
can have elements of different types
2. Array is derived data type whereas a structure is a programmer
defined one.
3. An array behaves like a built in data type. But in case of structure,
first we have to design and declare a data structure before the
variables of that type are declared and used
Declaring a Structure Variable
•A structure has to declared, after the body of structure has
defined.
•The syntax of declaring a structure is
e1 = e2;
assign value of structure variable e2 to e1. The value of
each member of e2 is assigned to corresponding
members of e1.
#include<stdio.h>
#include<conio.h>
struct employee
{
int emp_id;
char name[20];
float salary;
char address[50];
int dept_no;
int age;
};
void main ( )
{ struct employee e1, e2;
printf (“Enter the employee id of employee”);
scanf(“%d”,&e1.emp_id);
printf (“Enter the name of employee”);
scanf(“%s”,e1.name);
printf (“Enter the salary of employee”);
scanf(“%f”,&e1.salary);
printf (“Enter the address of employee”);
scanf(“%s”,e1.address);
printf (“Enter the department of employee”);
scanf(“%d”,&e1.dept_no);
printf (“Enter the age of employee”);
scanf(“%d”,&e1.age);
printf (“Enter the employee id of employee”);
scanf(“%d”,&e2.emp_id);
printf (“Enter the name of employee”);
scanf(“%s”,e2.name);
printf (“Enter the salary of employee”);
scanf(“%f”,&e2.salary);
printf (“Enter the address of employee”);
scanf(“%s”,e2.address);
printf (“Enter the department of employee”);
scanf(“%d”,&e2.dept_no);
printf (“Enter the age of employee”);
scanf(“%d”,&e2.age);
printf (“The employee id of employee is : %d”, e1.emp_id);
printf (“The name of employee is : %s”, e1.name);
printf (“The salary of employee is : %f”, e1.salary);
printf (“The address of employee is : %s”, e1.address);
printf (“The department of employee is : %d”, e1.dept_no);
printf (“The age of employee is : %d”, e1.age);
Program to implement the Structure
printf (“The employee id of employee is : %d”,
e2.emp_id);
printf (“The name of employee is : %s”,
e2.name);
printf (“The salary of employee is : %f”,
e2.salary);
printf (“The address of employee is : %s”,
e2.address);
printf (“The department of employee is : %d”,
e2.dept_no);
printf (“The age of employee is : %d”,e2.age);
getch();
}
Output of Program
Enter the employee id of employee 1
Enter the name of employee Rahul
Enter the salary of employee 15000
Enter the address of employee 4,villa area, Delhi
Enter the department of employee 3
Enter the age of employee 35
Enter the employee id of employee 2
Enter the name of employee Rajeev
Enter the salary of employee 14500
Enter the address of employee flat 56H, Mumbai
Enter the department of employee 5
Enter the age of employee 30
Output of Program
The employee id of employee is : 1
The name of employee is : Rahul
The salary of employee is : 15000
The address of employee is : 4, villa area, Delhi
The department of employee is : 3
The age of employee is : 35
The employee id of employee is : 2
The name of employee is : Rajeev
The salary of employee is : 14500
The address of employee is : flat 56H, Mumbai
The department of employee is : 5
The age of employee is : 30
Array of Structure
C language allows to create an array of variables of structure. The array of
structure is used to store the large number of similar records. For example
to store the record of 100 employees then array of structure is used. The
method to define and access the array element of array of structure is
similar to other array. The syntax to define the array of structure is
For Example:-
Struct employee e1[100];
Program to implement the Array of Structure
#include <stdio.h>
#include <conio.h>
struct employee
{
int emp_id;
char name[20];
float salary;
char address[50];
int dept_no;
int age;
};
Program to implement the Array of Structure
void main ( )
{
struct employee e1[5];
int i;
for (i=1; i<=100; i++)
{
printf (“Enter the employee id of employee”);
scanf (“%d”,&e[i].emp_id);
printf (“Enter the name of employee”);
scanf (“%s”,e[i].name);
printf (“Enter the salary of employee”);
scanf (“%f”,&e[i].salary);
Program to implement the Array of Structure
printf (“Enter the address of employee”);
scanf (“%s”, e[i].address);
printf (“Enter the department of employee”);
scanf (“%d”,&e[i].dept_no);
printf (“Enter the age of employee”);
scanf (“%d”,&e[i].age);
}
for (i=1; i<=100; i++)
{
printf (“The employee id of employee is : %d”,
e[i].emp_id);
printf (“The name of employee is: %s”,e[i].name);
Program to implement the Array of Structure
printf (“The salary of employee is: %f”,
e[i].salary);
printf (“The address of employee is : %s”,
e[i].address);
printf (“The department of employee is : %d”,
e[i].dept_no);
printf (“The age of employee is : %d”, e[i].age);
}
getch();
}
Structures within Structures
#include <stdio.h>
#include <conio.h>
struct employee
{
int emp_id;
char name[20];
float salary;
};
Function Returning Structure
void main ( )
{
struct employee emp;
emp=getdata();
printf (“\nThe employee id of employee is :
%d”, emp.emp_id);
printf (“\nThe name of employee is : %s”,
emp.name);
printf (“\nThe salary of employee is : %f”,
emp.salary);
getch();
}
Function Returning Structure
struct employee getdata( )
{
struct employee e1;
printf (“Enter the employee id of employee”);
scanf(“%d”,&e1.emp_id);
printf (“Enter the name of employee”);
scanf(“%s”,e1.name);
printf (“Enter the salary of employee”);
scanf(“%f”,&e1.salary);
return(e1);
}
UNION DATA TYPE
What is Union
A union is a user defined data type like structure. The
union groups logically related variables into a single unit.
The union data type allocate the space equal to space
need to hold the largest data member of union. The union
allows different types of variable to share same space in
memory. There is no other difference between structure
and union than internal difference. The method to
declare, use and access the union is same as structure.
union employee
{
int emp_id;
char name[20];
float salary;
char address[50];
int dept_no;
int age;
};
Memory Space Allocation
8000
emp_id, dept_no, age
8002
salary
8004
name
8022
address
Difference Between Structure and Union