C gir oss funksjonen til å neste en struktur i en annen struktur ved å bruke komplekse datatyper som opprettes. For eksempel kan vi trenge å lagre adressen til en enhetsansatt i en struktur. Attributtadressen kan også ha underdelene som gatenummer, by, stat og pinkode. Derfor, for å lagre adressen til den ansatte, må vi lagre adressen til den ansatte i en egen struktur og legge strukturadressen inn i strukturansatt. Tenk på følgende program.
#include 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? '); scanf('%s %s %d %s',emp.name,emp.add.city, &emp.add.pin, emp.add.phone); printf('Printing the employee information.... '); printf('name: %s City: %s Pincode: %d Phone: %s',emp.name,emp.add.city,emp.add.pin,emp.add.phone); }
Produksjon
Enter employee information? Arun Delhi 110001 1234567890 Printing the employee information.... name: Arun City: Delhi Pincode: 110001 Phone: 1234567890
Strukturen kan nestes på følgende måter.
- Etter egen struktur
- Etter innebygd struktur
1) Separat struktur
Her lager vi to strukturer, men den avhengige strukturen skal brukes inne i hovedstrukturen som medlem. Tenk på følgende eksempel.
struct Date { int dd; int mm; int yyyy; }; struct Employee { int id; char name[20]; struct Date doj; }emp1;
Som du kan se, er doj (dato for sammenføyning) variabelen av typen Date. Her brukes doj som medlem i Medarbeiderstruktur. På denne måten kan vi bruke Datostruktur i mange strukturer.
2) Innebygd struktur
Den innebygde strukturen gjør det mulig for oss å deklarere strukturen inne i strukturen. Derfor krever det mindre linje med koder, men det kan ikke brukes i flere datastrukturer. Tenk på følgende eksempel.
struct Employee { int id; char name[20]; struct Date { int dd; int mm; int yyyy; }doj; }emp1;
Få tilgang til Nested Structure
Vi kan få tilgang til medlemmet av den nestede strukturen av Outer_Structure.Nested_Structure.member som gitt nedenfor:
e1.doj.dd e1.doj.mm e1.doj.yyyy
C Nested Struktur eksempel
La oss se et enkelt eksempel på den nestede strukturen i C-språk.
#include #include 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 ', e1.id); printf( 'employee name : %s ', e1.name); printf( 'employee date of joining (dd/mm/yyyy) : %d/%d/%d ', e1.doj.dd,e1.doj.mm,e1.doj.yyyy); return 0; }
Produksjon:
employee id : 101 employee name : Sonoo Jaiswal employee date of joining (dd/mm/yyyy) : 10/11/2014
Passer struktur for å fungere
Akkurat som andre variabler kan en struktur også overføres til en funksjon. Vi kan sende strukturelementene inn i funksjonen eller sende strukturvariabelen på en gang. Tenk på følgende eksempel for å overføre strukturvariabelen ansatt til en funksjon display() som brukes til å vise detaljene til en ansatt.
#include 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? '); 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.... '); printf('%s %s %d %s',emp.name,emp.add.city,emp.add.pin,emp.add.phone); }