Nested Structure In C

Example

#include<stdio.h>

struct address 

{

    char city[20];

    int pin;

    char phone[14];

};

struct employee

{

    char name[20];

    struct address add;

};

void main ()

{

    struct employee emp;

    printf("Enter employee information?\n");

    scanf("%s %s %d %s",emp.name,emp.add.city, &emp.add.pin, emp.add.phone);

    printf("Printing the employee information....\n");

    printf("name: %s\nCity: %s\nPincode: %d\nPhone: %s",emp.name,emp.add.city,emp.add.pin,emp.add.phone);

}

Output

Output

Enter employee information?



Arun            



Delhi           



110001       



1234567890    



Printing the employee information....   



name: Arun      



City: Delhi  



Pincode: 110001



Phone: 1234567890

The structure can be organized in various nested formats.

  • Through distinct structure
  • Via Enclosed structure
  • 1) Separate structure

Here, we establish two structures, with the subordinate structure intended to function as a component within the primary structure. Take into account the illustration below.

Example

struct Date

{

   int dd;

   int mm;

   int yyyy; 

};

struct Employee

{   

   int id;

   char name[20];

   struct Date doj;

}emp1;

As illustrated, ```

include<stdio.h>

struct address

{

char city[20];

int pin;

char phone[14];

};

struct employee

{

char name[20];

struct address add;

};

void main

{

struct employee emp;

printf("Enter employee information?\n");

scanf("%s %s %d %s",emp.name,emp.add.city, &emp.add.pin, emp.add.phone);

printf("Printing the employee information....\n");

printf("name: %s\nCity: %s\nPincode: %d\nPhone: %s",emp.name,emp.add.city,emp.add.pin,emp.add.phone);

}

Example


### 2) Embedded structure

The nested structure allows us to define a structure within another structure, reducing the amount of code needed. However, it is not suitable for use with multiple data structures. Take a look at the example below.

struct Employee

{

int id;

char name[20];

struct Date

{

int dd;

int mm;

int yyyy;

}doj;

}emp1;

Example


## Accessing Nested Structure

We can retrieve the member of the nested structure by using Outer_Structure.Nested_Structure.member as illustrated below:

e1.doj.dd

e1.doj.mm

e1.doj.yyyy

Example


## C Nested Structure example

Let's explore a basic illustration of nested structure in the C programming language.

### Example

include <stdio.h>

include <string.h>

struct Employee

{

int id;

char name[20];

struct Date

{

int dd;

int mm;

int yyyy;

}doj;

}e1;

int main

{

//storing employee information

e1.id=101;

strcpy(e1.name, "Sonoo Jaiswal");//copying string into char array

e1.doj.dd=10;

e1.doj.mm=11;

e1.doj.yyyy=2014;

//printing first employee information

printf( "employee id : %d\n", e1.id);

printf( "employee name : %s\n", e1.name);

printf( "employee date of joining (dd/mm/yyyy) : %d/%d/%d\n", e1.doj.dd,e1.doj.mm,e1.doj.yyyy);

return 0;

}

Example


Output:

employee id : 101

employee name : Sonoo Jaiswal

employee date of joining (dd/mm/yyyy) : 10/11/2014

Example


## Passing structure to function

Similar to how variables are passed to a function, a structure can be passed as well. It is possible to pass individual members of the structure or the entire structure variable in one go. For instance, let's look at an example where we pass the structure variable "employee" to a function called display() that is designed to showcase an employee's information.

### Example

include<stdio.h>

struct address

{

char city[20];

int pin;

char phone[14];

};

struct employee

{

char name[20];

struct address add;

};

void display(struct employee);

void main

{

struct employee emp;

printf("Enter employee information?\n");

scanf("%s %s %d %s",emp.name,emp.add.city, &emp.add.pin, emp.add.phone);

display(emp);

}

void display(struct employee emp)

{

printf("Printing the details....\n");

printf("%s %s %d %s",emp.name,emp.add.city,emp.add.pin,emp.add.phone);

}

Example


Input Required

This code uses input(). Please provide values below: