|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Langage C - Les structuresDifférence entre une structure et un tableauUn tableau permet de regrouper des éléments de même type, c'est-à-dire codés sur le même nombre de bits et de la même façon. Toutefois, il est généralement utile de pouvoir rassembler des éléments de type différent tels que des entiers et des chaînes de caractères. Les structures permettent de remédier à cette lacune des tableaux, en regroupant
des objets (des variables) au sein d'une entité repérée par un seul nom de variable.
Déclaration d'une structureLors de la déclaration de la structure, on indique les champs de la structure, c'est-à-dire le type et le nom des variables qui la composent : struct Nom_Structure { type_champ1 Nom_Champ1; type_champ2 Nom_Champ2; type_champ3 Nom_Champ3; type_champ4 Nom_Champ4; type_champ5 Nom_Champ5; ... };
Ainsi, la structure suivante est correcte :
struct MaStructure { int Age; char Sexe; char Nom[12]; float MoyenneScolaire; struct AutreStructure StructBis; /* en considérant que la structure AutreStructure est définie */ }; Par contre la structure suivante est incorrecte : struct MaStructure { int Age; char Age; struct MaStructure StructBis; }; Il y a deux raisons à cela :
La déclaration d'une structure ne fait que donner l'allure de la structure, c'est-à-dire en quelque sorte une définition d'un type de variable complexe. La déclaration ne réserve donc pas d'espace mémoire pour une variable structurée (variable de type structure), il faut donc définir une (ou plusieurs) variable(s) structurée(s) après avoir déclaré la structure... Définition d'une variable structuréeLa définition d'une variable structurée est une opération qui consiste
à créer une variable ayant comme type celui d'une structure que l'on a précédemment
déclarée, c'est-à-dire la nommer et lui réserver un emplacement en mémoire.
struct Nom_Structure Nom_Variable_Structuree; Nom_Structure représente le nom d'une structure que l'on aura préalablement déclarée.
Il va de soi que, comme dans le cas des variables on peut définir plusieurs variables structurées en les séparant avec des virgules : struct Nom_Structure Nom1, Nom2, Nom3, ...; Soit la structure Personne : struct Personne{ int Age; char Sexe; };On peut définir plusieurs variables structurées : struct Personne Pierre, Paul, Jacques; Accès aux champs d'une variable structuréeChaque variable de type structure possède des champs repérés avec des noms
uniques. Toutefois le nom des champs ne suffit pas pour y accéder étant donné
qu'ils n'ont de contexte qu'au sein de la variable structurée...
Nom_Variable.Nom_Champ; Ainsi, pour affecter des valeurs à la variable Pierre (variable de type struct Personne définie précédemment), on pourra écrire : Pierre.Age = 18; Pierre.Sexe = 'M'; Tableaux de structuresEtant donné qu'une structure est composée d'éléments de taille fixe, il est possible de créer un tableau ne contenant que des éléments du type d'une structure donnée. Il suffit de créer un tableau dont le type est celui de la structure et de le repérer par un nom de variable : struct Nom_Structure Nom_Tableau[Nb_Elements]; Chaque élément du tableau représente alors une structure du type que l'on a défini...
struct Personne Repertoire[8]; De la même façon, il est possible de manipuler des structures dans les fonctions. Trucs & astuces pertinents trouvés dans la base de connaissances
Discussions pertinentes trouvées dans le forum
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||