Matriu d'estructures vs matriu dins d'una estructura en C

Tots dos Matriu d'estructures i Matriu dins d'una estructura en C, la programació és una combinació de matrius i estructures, però ambdues s'utilitzen per a diferents propòsits.

Matriu dins d'una estructura

Una estructura és un tipus de dades en C que permet tractar un grup de variables relacionades com una unitat única en lloc d'entitats separades. Una estructura pot contenir elements de diferents tipus de dades: int, char, float, double, etc. També pot contenir una matriu com a membre. Aquesta matriu s'anomena matriu dins d'una estructura. Una matriu dins d'una estructura és un membre de l'estructura i es pot accedir de la mateixa manera que accedim a altres elements de l'estructura.

A continuació es mostra una demostració d'un programa que utilitza el concepte de matriu dins d'una estructura. El programa mostra l'expedient d'un estudiant que inclou el número de rotlle , grau , i marques assegurat en diferents matèries. Les notes de diverses assignatures s'han emmagatzemat sota una matriu anomenada marques . Tot el registre s'emmagatzema sota una estructura anomenada a candidat .



Exemple

El programa següent mostra l'ús d'una matriu dins d'una estructura.

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

Sortida

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

Matriu d'estructures

Una matriu és una col·lecció d'elements de dades del mateix tipus. Cada element de la matriu pot ser int, char, float, double o fins i tot una estructura. Hem vist que una estructura permet agrupar elements de diferents tipus de dades sota un sol nom. Aleshores, aquesta estructura es pot considerar com un nou tipus de dades en si mateixa. Per tant, una matriu pot contenir elements d'aquest nou tipus de dades. Una sèrie d'estructures troben les seves aplicacions en agrupar els registres i ofereixen un accés ràpid.

A continuació es mostra una demostració d'una sèrie d'estructures. La matriu conté els detalls dels estudiants d'una classe. Els detalls inclouen el número de rotlle, grau , i marques , que s'han agrupat sota una estructura (registre). Hi ha un registre per a cada alumne. Així és com es pot reunir una col·lecció de variables relacionades sota una única entitat per millorar la claredat del codi i augmentar la seva eficiència.

Exemple

El programa següent mostra l'ús d'una sèrie d'estructures.

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

Sortida

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 

Diferència entre matriu d'estructures i matriu dins d'estructures

A continuació es mostra la diferència tabular entre la matriu dins d'una estructura i la matriu d'estructures:

Paràmetre

Matriu dins d'una estructura

Matriu d'estructures

Idea bàsica Una estructura conté una matriu com a variable membre. Una matriu en què cada element té una estructura de tipus.
Sintaxi struct class { int ar[10]; } a1, a2, a3; struct class { int a, b, c; } estudiants[10];
Accés S'hi pot accedir mitjançant l'operador de punt de la mateixa manera que accedim a altres elements de l'estructura. Es pot accedir indexant de la mateixa manera que accedim a una matriu.
Sintaxi dels elements d'accés estructura.array[índex] matriu[índex].membre
Estructura de la memòria La matriu dins de l'estructura s'emmagatzemarà a la memòria seqüencial i el farciment de l'estructura no depèn de la mida de la matriu. Hi haurà un espai buit entre els elements de l'estructura a causa del farciment de l'estructura.


Articles Més Populars

Categoria

Articles D'Interès