Array of Structures vs Array innenfor en struktur i C

Både En rekke strukturer og Array i en struktur i C-programmering er en kombinasjon av matriser og strukturer, men begge brukes til å tjene forskjellige formål.

Array i en struktur

En struktur er en datatype i C som gjør at en gruppe relaterte variabler kan behandles som en enkelt enhet i stedet for separate enheter. En struktur kan inneholde elementer av forskjellige datatyper – int, char, float, double, osv. Den kan også inneholde en matrise som medlem. En slik matrise kalles en matrise innenfor en struktur. En matrise i en struktur er et medlem av strukturen og kan nås på samme måte som vi får tilgang til andre elementer i strukturen.

Nedenfor er en demonstrasjon av et program som bruker konseptet med matrisen i en struktur. Programmet viser posten til en student som består av rull nummer , karakter , og merker sikret i ulike fag. Merkene i ulike fag har blitt lagret under en matrise kalt merker . Hele posten er lagret under en struktur kalt en kandidat .



Eksempel

Programmet nedenfor viser bruken av en matrise i en struktur.

C




// C program to demonstrate the> // use of an array within a structure> #include> // Declaration of the structure candidate> struct> candidate {> > int> roll_no;> > char> grade;> > // Array within the structure> > float> marks[4];> };> // Function to displays the content of> // the structure variables> void> display(> struct> candidate a1)> {> > printf> (> 'Roll number : %d '> , a1.roll_no);> > printf> (> 'Grade : %c '> , a1.grade);> > printf> (> 'Marks secured: '> );> > int> i;> > int> len => sizeof> (a1.marks) /> sizeof> (> float> );> > // Accessing the contents of the> > // array within the structure> > for> (i = 0; i printf('Subject %d : %.2f ', i + 1, a1.marks[i]); } } // Driver Code int main() { // Initialize a structure struct candidate A = { 1, 'A', { 98.5, 77, 89, 78.5 } }; // Function to display structure display(A); return 0; }>

Produksjon

Roll number : 1 Grade : A Marks secured: Subject 1 : 98.50 Subject 2 : 77.00 Subject 3 : 89.00 Subject 4 : 78.50 

En rekke strukturer

En matrise er en samling av dataelementer av samme type. Hvert element i arrayet kan være int, char, float, double eller til og med en struktur. Vi har sett at en struktur gjør at elementer av forskjellige datatyper kan grupperes sammen under ett enkelt navn. Denne strukturen kan da betraktes som en ny datatype i seg selv. Så en matrise kan omfatte elementer av denne nye datatypen. En rekke strukturer finner sine applikasjoner ved å gruppere postene sammen og sørger for rask tilgang.

Nedenfor er en demonstrasjon av en rekke strukturer. Matrisen inneholder detaljene til elevene i en klasse. Detaljene inkluderer rullenummer, karakter , og merker , som har blitt gruppert under en struktur (post). Det finnes én post for hver elev. Dette er hvordan en samling av relaterte variabler kan settes sammen under en enkelt enhet for å forbedre klarheten til koden og øke effektiviteten.

Eksempel

Programmet nedenfor viser bruken av en rekke strukturer.

C




// C program to demonstrate the> // usage of an array of structures> #include> // Declaring a structure class> struct> class> {> > int> roll_no;> > char> grade;> > float> marks;> };> // Function to displays the contents> // of the array of structures> void> display(> struct> class> class_record[3])> {> > int> i, len = 3;> > // Display the contents of the array> > // of structures here, each element> > // of the array is a structure of class> > for> (i = 0; i printf('Roll number : %d ', class_record[i].roll_no); printf('Grade : %c ', class_record[i].grade); printf('Average marks : %.2f ', class_record[i].marks); printf(' '); } } // Driver Code int main() { // Initialize of an array of structures struct class class_record[3] = { { 1, 'A', 89.5f }, { 2, 'C', 67.5f }, { 3, 'B', 70.5f } }; // Function Call to display // the class_record display(class_record); return 0; }>

Produksjon

Roll number : 1 Grade : A Average marks : 89.50 Roll number : 2 Grade : C Average marks : 67.50 Roll number : 3 Grade : B Average marks : 70.50 

Forskjellen mellom Array of Structures og Array in Structures

Nedenfor er den tabellformede forskjellen mellom matrisen i en struktur og matrisen av strukturer:

Parameter

Array i en struktur

En rekke strukturer

Grunntanke En struktur inneholder en matrise som medlemsvariabel. En matrise der hvert element er av typen struktur.
Syntaks struct class { int ar[10]; } al, a2, a3; struct class { int a, b, c; } studenter[10];
Adgang Kan nås ved hjelp av punktoperatoren på samme måte som vi får tilgang til andre elementer i strukturen. Kan nås ved å indeksere akkurat som vi får tilgang til en matrise.
Syntaks for tilgangselementer structure.array[indeks] array[indeks].medlem
Minnestruktur Array i strukturen vil bli lagret i sekvensielt minne og strukturutfylling er ikke avhengig av størrelsen på arrayen. Det vil være noe tomt mellom strukturelementer på grunn av strukturpolstring.


Topp Artikler

Kategori

Interessante Artikler