0% found this document useful (0 votes)
58 views

CP Module 4 Structure and Union

Structures allow grouping of related data items of different data types into a single unit. A structure variable can store multiple data items of different types under one name. Structures must be defined before they can be used by specifying the data types and names of members. Structure members are accessed using the structure variable name and dot operator. Arrays of structures can store multiple records of the same type. Structures can also be nested by defining one structure as a member of another. Pointers to structures are declared similar to other pointer variables.

Uploaded by

Mohamed Mishal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
58 views

CP Module 4 Structure and Union

Structures allow grouping of related data items of different data types into a single unit. A structure variable can store multiple data items of different types under one name. Structures must be defined before they can be used by specifying the data types and names of members. Structure members are accessed using the structure variable name and dot operator. Arrays of structures can store multiple records of the same type. Structures can also be nested by defining one structure as a member of another. Pointers to structures are declared similar to other pointer variables.

Uploaded by

Mohamed Mishal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 42

STRUCTURE

&
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

Struct struct_name variable_name;


•The example to declare the variable for defined structure
“employee”

struct employee e1;


•Here e1 variable contains 6 members that are defined in structure.
Accessing a Structure Members

•The structure members cannot be directly accessed in


the expression.
•They are accessed by using the name of structure
variable followed by a dot and then the name of member
variable.
•The method used to access the structure variables are
e1.emp_id, e1.name, e1.salary, e1.address, e1.dept_no,
e1.age.
•The data with in the structure is stored and printed by
this method using scanf and printf statement in c
program.
Initializing a Structure Members
The members of individual structure variable is initialize one by one or
in a single statement.
The example to initialize a structure variable is
1)struct employee e1 = {1, “Hemant”,12000, “3 vikas
colony new delhi”,10, 35);
2)e1.emp_id=1; e1.dept_no=1
e1.name=“Hemant”; e1.age=35;
e1.salary=12000;
e1.address=“ LPU JALANDHAR”;
Structure Assignment

The value of one structure variable is assigned to another


variable of same type using assignment statement. If the
e1 and e2 are structure variables of type employee then
the statement

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

Struct <struct_name> <array_name> [<value>];

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

C language define a variable of structure type as a member of


other structure type. The syntax to define the structure within
structure is struct <struct_name>{
<data_type> <variable_name>;
struct <struct_name>
{ <data_type><variable_name>;
……..}
<struct_variable>;
<data_type> <variable_name>;
Example of Structure within Structure

The structure of Employee is declared as


struct employee
{ int emp_id;
char name[20];
float salary;
int dept_no;
struct date
{ int day;
int month;
int year;
}doj;
};
Accessing Structures within Structures

The data member of structure within structure


is accessed by using two period (.) symbol.
The syntax to access the structure within
structure is
struct _var. nested_struct_var. struct_member;
For Example:-
e1.doj.day;
e1.doj.month;
e1.doj.year;
Structures and pointers
C language can define a pointer variable of structure
type. The pointer variable to structure variable is
declared by using same syntax to define a pointer
variable of data type. The syntax to define the pointer
to structure
struct <struct_name> *<pointer_var_name>; For
Example:
struct employee *emp;
It declare a pointer variable “emp” of employee type.
Access the Pointer in Structures

The member of structure variable is accessed


by using the pointer variable with arrow
operator() instead of period operator(.). The
syntax to access the pointer to structure.
pointer_var_namestructure_member;
For Example:
empname;
Here “name” structure member is accessed
through pointer variable emp.
Passing Structures To functions

The structure variable can be passed to a function as


a parameter. The program to pass a structure
variable to a function.
#include <stdio.h>
#include <conio.h>
struct employee
{
int emp_id;
char name[20];
float salary;
};
Passing Structure to Function
void main ( )
{
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);
printdata (struct employee e1);
getch();
}
Passing Structure to Function

void printdata( struct employee emp)


{
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);
}
Function Returning Structure
The function can return a variable of structure type
like a integer and float variable.

The program to return a structure from function.

#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.

Harwant Singh Arri


Defining of Union
A union has to defined, before it can used. The syntax of
defining a structure is
union <union_name>
{
<data_type> <variable_name>;
<data_type> <variable_name>;
……..
<data_type> <variable_name>;
Harwant Singh Arri
};
Example of Union
The union of Employee is declared as

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

1)The memory occupied by structure variable is the


sum of sizes of all the members but memory occupied
by union variable is equal to space hold by the largest
data member of a union.
2)In the structure all the members are accessed at
any point of time but in union only one of union
member can be accessed at any given time.
Application of Structures
Structure is used in database management to maintain data
about books in library, items in store, employees in an
organization, financial accounting transaction in company.
Beside that other application are
1)Changing the size of cursor.
2)Clearing the contents of screen.
3)Drawing any graphics shape on screen.
4)Receiving the key from the keyboard.
5) Placing cursor at defined position on screen.
6) Checking the memory size of the computer.
7)Finding out the list of equipments attach to computer.
8) Hiding a file from the directory.
9) Sending the output to printer.
10) Interacting with the mouse.
11) Formatting a floppy.
12) Displaying the directory of a disk.
Summary

• A structure is a user defined data type that groups


logically related data items of different data types into a
single unit.
• The elements of a structure are stored at contiguous
memory locations.
• The value of one structure variable is assigned to
another variable of same type using assignment
statement.
• An array of variables of structure is created.
• A variable of structure type is defined as a member of
other structure type called nested structure.
Summary

• The member of structure variable is accessed by pointer


variable with arrow operator (  ) .
• The structure variable can be passed to a function as a
parameter.
• The function can return a variable of structure type.
• A union is like structure that group logically related
variables into a single unit. The union allocate the space
equal to space need to hold the largest data member of
union.
• Structure used in database management and many
more applications.
Thanks

You might also like