Array af strukturer vs Array inden for en struktur i C

Begge Vifte af strukturer og Array i en struktur i C-programmering er en kombination af arrays og strukturer, men begge bruges til at tjene forskellige formål.

Array i en struktur

En struktur er en datatype i C der gør det muligt at behandle en gruppe af relaterede variable som en enkelt enhed i stedet for separate enheder. En struktur kan indeholde elementer af forskellige datatyper – int, char, float, double osv. Den kan også indeholde et array som medlem. Et sådant array kaldes et array i en struktur. Et array i en struktur er et medlem af strukturen og kan tilgås, ligesom vi får adgang til andre elementer i strukturen.

Nedenfor er en demonstration af et program, der bruger konceptet for arrayet i en struktur. Programmet viser rekorden for en studerende, der omfatter rullenummer , karakter , og mærker sikret i forskellige fag. Mærkerne i forskellige emner er blevet gemt under et array kaldet mærker . Hele posten er gemt under en struktur kaldet -en kandidat .



Eksempel

Nedenstående program demonstrerer brugen af ​​et array 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; }>

Produktion

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

Vifte af strukturer

Et array er en samling af dataelementer af samme type. Hvert element i arrayet kan være int, char, float, double eller endda en struktur. Vi har set, at en struktur tillader elementer af forskellige datatyper at blive grupperet sammen under et enkelt navn. Denne struktur kan så opfattes som en ny datatype i sig selv. Så et array kan omfatte elementer af denne nye datatype. En række strukturer finder sine anvendelser ved at gruppere posterne sammen og sørger for hurtig adgang.

Nedenfor er en demonstration af en række strukturer. Arrayet indeholder detaljerne om eleverne i en klasse. Detaljerne omfatter rullenummer, karakter , og mærker , som er blevet grupperet under en struktur (record). Der findes én rekord for hver elev. Dette er, hvordan en samling af relaterede variabler kan samles under en enkelt enhed for at øge kodens klarhed og øge dens effektivitet.

Eksempel

Nedenstående program demonstrerer brugen af ​​en række 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; }>

Produktion

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 

Forskellen mellem Array of Structures og Array in Structures

Nedenfor er den tabelformede forskel mellem matrixen inden for en struktur og matrixen af ​​strukturer:

Parameter

Array i en struktur

Vifte af strukturer

Grundidé En struktur indeholder en matrix som dens medlemsvariabel. Et array, hvor hvert element er af typen struktur.
Syntaks struct klasse { int ar[10]; } al, a2, a3; struct klasse { int a, b, c; } studerende[10];
Adgang Kan tilgås ved hjælp af prikoperatoren, ligesom vi tilgår andre elementer i strukturen. Kan tilgås ved at indeksere ligesom vi får adgang til et array.
Syntaks for adgangselementer struktur.array[indeks] array[indeks].medlem
Hukommelsesstruktur Array i strukturen vil blive lagret i sekventiel hukommelse, og strukturudfyldning er ikke afhængig af arrayets størrelse. Der vil være noget tomt mellemrum mellem strukturelementer på grund af strukturpolstring.


Top Artikler

Kategori

Interessante Artikler