logo

Nestet struktur i C

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.

  1. Etter egen struktur
  2. 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); }