Tableau de structures vs tableau dans une structure en C
Les deux Tableau de structures et Tableau dans une structure en C, la programmation est une combinaison de tableaux et de structures, mais les deux sont utilisés à des fins différentes.
Tableau dans une structure
Une structure est un type de données dans C qui permet à un groupe de variables liées d'être traité comme une seule unité au lieu d'entités distinctes. Une structure peut contenir des éléments de différents types de données – int, char, float, double, etc. Elle peut également contenir un tableau comme membre. Un tel tableau est appelé tableau au sein d’une structure. Un tableau au sein d’une structure est membre de la structure et est accessible tout comme nous accédons à d’autres éléments de la structure.
Vous trouverez ci-dessous une démonstration d'un programme qui utilise le concept de tableau au sein d'une structure. Le programme affiche le dossier d'un étudiant comprenant le numéro de rôle , grade , et Des marques sécurisé dans diverses matières. Les notes dans divers sujets ont été stockées dans un tableau appelé Des marques . L'ensemble du dossier est stocké sous une structure appelée un candidat .
Exemple
Le programme ci-dessous démontre l'utilisation d'un tableau dans une structure.
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; }> |
Sortir
Roll number : 1 Grade : A Marks secured: Subject 1 : 98.50 Subject 2 : 77.00 Subject 3 : 89.00 Subject 4 : 78.50
Tableau de structures
Un tableau est une collection d’éléments de données du même type. Chaque élément du tableau peut être un int, un char, un float, un double ou même une structure. Nous avons vu qu'une structure permet de regrouper sous un même nom des éléments de différents types de données. Cette structure peut alors être considérée comme un nouveau type de données en soi. Ainsi, un tableau peut comprendre des éléments de ce nouveau type de données. Un ensemble de structures trouve ses applications dans le regroupement des enregistrements et permet un accès rapide.
Vous trouverez ci-dessous une démonstration d'un ensemble de structures. Le tableau contient les détails des étudiants d’une classe. Les détails incluent le numéro de matricule, grade , et des marques , qui ont été regroupés sous une structure (enregistrement). Il existe une fiche pour chaque élève. C'est ainsi qu'un ensemble de variables liées peut être rassemblé sous une seule entité pour améliorer la clarté du code et augmenter son efficacité.
Exemple
Le programme ci-dessous démontre l'utilisation d'un éventail de structures.
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; }> |
Sortir
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
Différence entre un tableau de structures et un tableau au sein de structures
Vous trouverez ci-dessous la différence tabulaire entre le tableau au sein d'une structure et le tableau de structures :
| Paramètre | Tableau dans une structure | Tableau de structures |
|---|---|---|
| Idée basique | Une structure contient un tableau comme variable membre. | Un tableau dans lequel chaque élément est de type structure. |
| Syntaxe | struct classe {int ar[10]; } a1, a2, a3; | struct classe {int a, b, c; } étudiants[10] ; |
| Accéder | Accessible à l’aide de l’opérateur point tout comme nous accédons à d’autres éléments de la structure. | Accessible par indexation tout comme nous accédons à un tableau. |
| Syntaxe des éléments d'accès | structure.array[index] | tableau[index].membre |
| Structure de la mémoire | Le tableau au sein de la structure sera stocké dans la mémoire séquentielle et le remplissage de la structure ne dépend pas de la taille du tableau. | Il y aura un espace vide entre les éléments de structure en raison du remplissage de la structure. |