Structures
Prepared by
Mrs. Preethy Jemima P
Assistant Professor
SRM IST- Ramapuram campus
Structures
• Structures (also called structs) are a way to
group several related variables into one place.
Each variable in the structure is known as
a member of the structure.
• Unlike an array, a structure can contain many
different data types (int, float, char, etc.).
Nested Structure
In C, a structure declaration can be placed inside
another structure. This is also known as nesting of
structure.
The declaration is same as the declaration of data type
in structure.
Structure within structure (or) nesting of structure is
used to create complex records.
There are two methods to declare a structure within
structure. Programmers can use either one method to
declare structure within structure.
•Embedded Structure Declaration
•Two Separate Structure Declaration
#include <stdio.h>
int main()
{
struct student // C Program - Structure within Structure - Embedded Declaration
{
char name[30];
struct avg
{ int sub1, sub2, sub3; float average;
}avg1;
};
struct student stud1;
printf("Enter the Name of the student ");
scanf("%s", stud1.name);
printf("\nEnter the marks of the student ");
scanf("%d %d %d ", &stud1.avg1.sub1, &stud1.avg1.sub2, &stud1.avg1.sub3);
stud1.avg1.average = (stud1.avg1.sub1 + stud1.avg1.sub2 + stud1.avg1.sub3)/3; printf("\
n-------Student Details-------\n ");
printf("%s", stud1.name);
printf("\nsub1: %d \n sub2: %d \n sub3: %d ", stud1.avg1.sub1, stud1.avg1.sub2,
stud1.avg1.sub3);
printf("\n Average: %f %", stud1.avg1.average);
return 0; }
Output:
Enter the Name of the student siva
Enter the marks of the student 78 82 80
-------Student Details-------
siva
sub1: 78
sub2: 82
sub3: 80
Average: 80.000000 %
C Program - Structure within Structure - Two Structure
#include <stdio.h>
Declaration
int main()
{
struct avg
{
int sub1, sub2, sub3; float average;
}avg1;
struct student
{
char name[30];
struct avg avg1;
};
struct student stud1;
printf("Enter the Name of the student ");
scanf("%s", stud1.name);
printf("\nEnter the marks of the student ");
scanf("%d %d %d ", &stud1.avg1.sub1, &stud1.avg1.sub2, &stud1.avg1.sub3);
• stud1.avg1.average = (stud1.avg1.sub1 +
stud1.avg1.sub2 + stud1.avg1.sub3)/3;
• printf("\n-------Student Details-------\n ");
• printf("%s",stud1.name);
• printf("\nsub1 : %d \n sub2 : %d \n sub3 : %d
",stud1.avg1.sub1, stud1.avg1.sub2,
stud1.avg1.sub3);
• printf("\nAverage : %f %",stud1.avg1.average);
• return 0;
• }
output
• Enter the Name of the student siva
• Enter the marks of the student 78 82 80
• -------Student Details-------
• siva
• sub1: 78
• sub2: 82
• sub3: 80
• Average: 80.000000 %