Matrice de structuri vs matrice dintr-o structură în C

Ambii Matrice de structuri și Matrice în cadrul unei structuri în C programarea este o combinație de matrice și structuri, dar ambele sunt folosite pentru a servi unor scopuri diferite.

Matrice în cadrul unei structuri

O structură este un tip de date în C care permite ca un grup de variabile înrudite să fie tratat ca o singură unitate în loc de entități separate. O structură poate conține elemente de diferite tipuri de date – int, char, float, double etc. Poate conține și o matrice ca membru. O astfel de matrice se numește matrice în cadrul unei structuri. O matrice din cadrul unei structuri este un membru al structurii și poate fi accesată la fel cum accesăm alte elemente ale structurii.

Mai jos este o demonstrație a unui program care utilizează conceptul de matrice în cadrul unei structuri. Programul afișează înregistrarea unui student care cuprinde numărul rolei , nota , și semne asigurate la diverse materii. Notele la diferite subiecte au fost stocate sub o matrice numită semne . Întreaga înregistrare este stocată sub o structură numită A candidat .



Exemplu

Programul de mai jos demonstrează utilizarea unui tablou în cadrul unei structuri.

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; }>

Ieșire

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

Matrice de structuri

O matrice este o colecție de elemente de date de același tip. Fiecare element al matricei poate fi int, char, float, double sau chiar o structură. Am văzut că o structură permite grupării elementelor de diferite tipuri de date sub un singur nume. Această structură poate fi apoi gândită ca un nou tip de date în sine. Deci, o matrice poate cuprinde elemente ale acestui nou tip de date. O serie de structuri își găsesc aplicațiile în gruparea înregistrărilor și asigură acces rapid.

Mai jos este o demonstrație a unei serii de structuri. Matricea deține detaliile elevilor dintr-o clasă. Detaliile includ numărul rolului, nota , și semne , care au fost grupate sub o structură (înregistrare). Există o înregistrare pentru fiecare student. Acesta este modul în care o colecție de variabile asociate poate fi asamblată sub o singură entitate pentru a spori claritatea codului și a crește eficiența acestuia.

Exemplu

Programul de mai jos demonstrează utilizarea unei serii de structuri.

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; }>

Ieșire

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 

Diferența dintre matrice de structuri și matrice din structuri

Mai jos este diferența tabelară dintre matricea dintr-o structură și matricea de structuri:

Parametru

Matrice în cadrul unei structuri

Matrice de structuri

Idee de bază O structură conține o matrice ca variabilă membru. O matrice în care fiecare element are o structură de tip.
Sintaxă struct class { int ar[10]; } a1, a2, a3; struct class { int a, b, c; } elevi[10];
Acces Poate fi accesat folosind operatorul punct la fel cum accesăm alte elemente ale structurii. Poate fi accesat prin indexare la fel cum accesăm o matrice.
Sintaxa elementelor de acces structura.matrice[index] matrice[index].membru
Structura memoriei Matricea din cadrul structurii va fi stocată în memoria secvențială, iar umplutura structurii nu depinde de dimensiunea matricei. Va exista un spațiu gol între elementele structurii din cauza căptușelii structurii.


Top Articole

Categorie

Articole Interesante