Matrice di strutture vs Matrice all'interno di una struttura in C

Entrambi Matrice di strutture E Array all'interno di una struttura nella programmazione C è una combinazione di array e strutture, ma entrambi vengono utilizzati per scopi diversi.

Array all'interno di una struttura

Una struttura è un tipo di dati in C che consente di trattare un gruppo di variabili correlate come una singola unità anziché come entità separate. Una struttura può contenere elementi di diversi tipi di dati: int, char, float, double, ecc. Può anche contenere un array come membro. Un array di questo tipo è chiamato array all'interno di una struttura. Un array all'interno di una struttura è un membro della struttura ed è possibile accedervi proprio come accediamo ad altri elementi della struttura.

Di seguito è riportata una dimostrazione di un programma che utilizza il concetto di array all'interno di una struttura. Il programma visualizza il record di uno studente comprendente il numero del rullino , grado , E segni assicurati in varie materie. I voti in vari argomenti sono stati memorizzati in un array chiamato segni . L'intero record è archiviato in una struttura chiamata UN candidato .



Esempio

Il programma seguente dimostra l'uso di un array all'interno di una struttura.

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

Produzione

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

Matrice di strutture

Un array è una raccolta di elementi di dati dello stesso tipo. Ogni elemento dell'array può essere int, char, float, double o anche una struttura. Abbiamo visto che una struttura permette di raggruppare sotto un unico nome elementi di tipi di dati diversi. Questa struttura può quindi essere pensata come un nuovo tipo di dati a sé stante. Pertanto, un array può comprendere elementi di questo nuovo tipo di dati. Una serie di strutture trova la sua applicazione nel raggruppamento dei record e fornisce un accesso rapido.

Di seguito è riportata una dimostrazione di una serie di strutture. L'array contiene i dettagli degli studenti in una classe. I dettagli includono il numero di rotolo, grado , e segni , che sono stati raggruppati sotto una struttura (record). Esiste un record per ogni studente. In questo modo è possibile assemblare una raccolta di variabili correlate sotto un'unica entità per migliorare la chiarezza del codice e aumentarne l'efficienza.

Esempio

Il programma seguente dimostra l'utilizzo di una serie di strutture.

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

Produzione

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 

Differenza tra array di strutture e array all'interno di strutture

Di seguito è riportata la differenza tabellare tra la matrice all'interno di una struttura e la matrice di strutture:

Parametro

Array all'interno di una struttura

Matrice di strutture

Idea base Una struttura contiene un array come variabile membro. Un array in cui ogni elemento è di tipo struttura.
Sintassi struct class { int ar[10]; } a1, a2, a3; struct class { int a, b, c; } studenti[10];
Accesso È possibile accedervi utilizzando l'operatore punto proprio come accediamo ad altri elementi della struttura. È possibile accedervi indicizzando proprio come accediamo a un array.
Accedere alla sintassi degli elementi struttura.array[indice] array[indice].membro
Struttura della memoria L'array all'interno della struttura verrà archiviato nella memoria sequenziale e il riempimento della struttura non dipende dalla dimensione dell'array. Ci sarà dello spazio vuoto tra gli elementi della struttura a causa del riempimento della struttura.


Articoli Più

Categoria

Articoli Interessanti