Programming in C: Unit IV: Structures and Union

Nested Structures

with Example C Programs

A structure can be placed within another structure, i.e., a structure may contain another structure as its member. A structure that contains another structure as its member is called a nested structure.

NESTED STRUCTURES

A structure can be placed within another structure, i.e., a structure may contain another structure as its member. A structure that contains another structure as its member is called a nested structure.

Let us now see how we declare nested structures or structures that contain structures. Although it is possible to declare a nested structure with one declaration, it is not recommended. The easier and clearer way is to declare the structures separately and then group them in a high- level structure. When you do this, take care to check that nesting must be done from inside out (from lowest level to the most inclusive level), i.e., to say, declare the innermost structure, then the next level structure, working towards the outer (most inclusive) structure.

typedef struct

{

char first name [20];

char mid_name [20];

char last name [20];

}NAME;

typedef struct

{

int dd;

int mm;

int yy:

}DATE;

typedef struct student

{

int r_no;

NAME name;

char course [20];

DATE DOB;

float fees;

};

In this example, we see that the structure student contains two other structures-NAME and DATE. Both these structures have their own fields. The structure NAME has three fields: first_name, mid_name, and last_name. The structure DATE also has three fields: dd, mm, and yy, which specify the day, month, and year of the date. To assign values to the structure fields, we will write

student stud1;

{

studl.name.first_name ="Janak";

studl.name.mid_name = "Raj";

studl.name.last_name = "Thareja";

stud1.course = "BCA";

studl.DOB. dd = 15;

stud1.DOB.mm = 09;

studl.DOB.yy = 1990;

studl.fees = 45000;

In case of nested structures we use the dot operator in conjunction with the structure variables to access the members of the innermost as well as the outermost structures. The use of nested structures is illustrated in the following program:

5. Write a program to read and display information of a student using a structure within a structure.

#include <stdio.h>

#include <conio.h>

int main()

{

struct DOB

{

int day;

int month;

int year;

};

struct student

{

int roll_no;

char name [100];

float fees;

struct DOB date;

};

struct student stud1;

clrscr();

printf("\n Enter the roll number: ");

scanf("%d", &stud1.roll_no);

printf("\n Enter the name: ");

scanf("%s", stud1.name);

printf("\n Enter the fees: ");

scanf("%f", &stud1.fees);

printf("\n Enter the DOB: ");

scanf("%d %d %d", &stud1.date.day, &stud1.date.month, &stud1.date. year);

printf("\n *** STUDENT'S DETAILS ***");

printf("\n ROLL No. = %d", stud1.roll_no);

printf("\n NAME %%s", stud1.name);

printf("\n FEES = %f", stud1. fees);

printf("\n DOB %d %d %d", stud1. date.day, stud1.date.month, stud1.date. year);

getch();

return 0;

}

Output

Enter the roll number: 01

Enter the name: Rahul

Enter the fees: 45000

Enter the DOB: 25 09 1991

********STUDENT'S DETAILS ****

ROLL NO. = 01

NAME = Rahul

FEES = 45000.00

DOB = 25-09-1991

Programming in C: Unit IV: Structures and Union : Tag: : with Example C Programs - Nested Structures


Programming in C: Unit IV: Structures and Union



Under Subject


Programming in C

CS3251 2nd Semester CSE Dept 2021 | Regulation | 2nd Semester CSE Dept 2021 Regulation



Related Subjects


Professional English II

HS3251 2nd Semester 2021 Regulation | 2nd Semester Common to all Dept 2021 Regulation


Statistics and Numerical Methods

MA3251 2nd Semester 2021 Regulation M2 Engineering Mathematics 2 | 2nd Semester Common to all Dept 2021 Regulation


Engineering Graphics

GE3251 eg 2nd semester | 2021 Regulation | 2nd Semester Common to all Dept 2021 Regulation


Physics for Electrical Engineering

PH3202 2nd Semester 2021 Regulation | 2nd Semester EEE Dept 2021 Regulation


Basic Civil and Mechanical Engineering

BE3255 2nd Semester 2021 Regulation | 2nd Semester EEE Dept 2021 Regulation


Electric Circuit Analysis

EE3251 2nd Semester 2021 Regulation | 2nd Semester EEE Dept 2021 Regulation


Physics for Electronics Engineering

PH3254 - Physics II - 2nd Semester - ECE Department - 2021 Regulation | 2nd Semester ECE Dept 2021 Regulation


Electrical and Instrumentation Engineering

BE3254 - 2nd Semester - ECE Dept - 2021 Regulation | 2nd Semester ECE Dept 2021 Regulation


Circuit Analysis

EC3251 - 2nd Semester - ECE Dept - 2021 Regulation | 2nd Semester ECE Dept 2021 Regulation


Materials Science

PH3251 2nd semester Mechanical Dept | 2021 Regulation | 2nd Semester Mechanical Dept 2021 Regulation


Basic Electrical and Electronics Engineering

BE3251 2nd semester Mechanical Dept | 2021 Regulation | 2nd Semester Mechanical Dept 2021 Regulation


Physics for Civil Engineering

PH3201 2021 Regulation | 2nd Semester Civil Dept 2021 Regulation


Basic Electrical, Electronics and Instrumentation Engineering

BE3252 2021 Regulation | 2nd Semester Civil Dept 2021 Regulation


Physics for Information Science

PH3256 2nd Semester CSE Dept | 2021 Regulation | 2nd Semester CSE Dept 2021 Regulation


Basic Electrical and Electronics Engineering

BE3251 2nd Semester CSE Dept 2021 | Regulation | 2nd Semester CSE Dept 2021 Regulation


Programming in C

CS3251 2nd Semester CSE Dept 2021 | Regulation | 2nd Semester CSE Dept 2021 Regulation