Académique Documents
Professionnel Documents
Culture Documents
Chapitre 1 (Rappel Sur Les Notion de Base)
Chapitre 1 (Rappel Sur Les Notion de Base)
• On a précédemment étudié les tableaux, qui sont des types permettant de regrouper sous un
même identificateur plusieurs données de même type.
• Un type tableau est un type complexe homogène. Par comparaison, une structure est un type
complexe hétérogène :
• Si on considère une structure comme un groupe de variables, alors un champ peut être comparé
à une variable. En effet, comme une variable, un champ possède un type, un identificateur, une
valeur et une adresse. Cependant, à la différence d’une variable, un champ n’est pas
indépendant, car il appartient à un groupe de champs qui forme sa structure.
DÉCLARATION
• La déclaration d’une structure se fait grâce au mot-clé struct, et en précisant :
• Son nom ;
• La liste de ses champs, avec pour chacun son nom et son type.
• exemple : on veut représenter des personnes par leurs noms, prénoms et âge.
DÉCLARATION
• On crée une structure appelée personne, contenant une chaîne de caractères nom pour représenter
le nom de famille, une autre prenom pour le prénom, et un entier age pour l’âge.
• Notez bien les points-virgules qui terminent la déclaration de chaque champ, et le point-virgule final
qui conclut la déclaration de la structure.
• La déclaration d’une variable structure se fait de façon classique, i.e. en précisant son type puis son
identificateur :
• On déclare une variable appelée x et dont le type est la structure personne définie précédemment.
DÉCLARATION
• Il n’est pas obligatoire de donner un nom à la structure : on parle alors de structure anonyme.
Structure anonyme : structure à laquelle on n’a pas associé d’identificateur.
• Les valeurs des champs doivent être indiquées dans l’ordre de leur déclaration dans le type
structure. Bien sûr, les types doivent correspondre.
TABLEAUX
• On a déjà vu qu’un tableau pouvait être défini sur n’importe quel type, qu’il soit simple ou complexe.
Par conséquent, il est possible de manipuler des tableaux de structures. La déclaration se fait comme
pour un tableau classique, à l’exception du fait qu’on précise un type structure.
• exemple : on déclare un tableau pouvant contenir 10 valeurs de type struct personne :
• Pour accéder à l’élément 𝑘 du tableau on utilise l’expression tab[k], dont le type est struct personne.
• Pour accéder au champ age de l’élément 𝑘 du tableau, on utilise l’expression tab[k].age, qui est de
type short. Pour accéder à la première lettre du champ prenom de l’élément 𝑘 du tableau, on utilise
l’expression tab[k].prenom[0], qui est de type char.
TABLEAUX
• exemple : considérons la structure suivante :
• Et déclarons le tableau tab suivant, contenant 7 valeurs de ce type :
• Alors la représentation de la mémoire est la suivante :
PARAMÈTRES
• Une variable de type structure peut bien entendu être utilisée comme paramètre d’une
fonction. Le passage se déroule alors comme pour une variable de type simple : on doit choisir
entre un passage par valeur ou par adresse.
• Remarque : il est important de bien remarquer que sur ce point, la structure diffère du tableau,
puisque le tableau est automatiquement passé par adresse.
PARAMÈTRES
• Supposons qu’on a une fonction recevant en paramètre l’adresse d’une variable de type struct
personne :
• Alors la modification d’un de ses champs passe par l’utilisation de l’opérateur *, comme on l’a déjà vu.
Par exemple, si on veut changer l’âge de la personne x, on utilisera l’expression :
• Notez bien l’utilisation des parenthèses. En effet, on veut appliquer l’opérateur * seulement à
l’expression x, qui est de type struct personne*. On obtient alors l’expression *x, qui est de type struct
personne. On peut alors appliquer l’opérateur. à cette expression *x, afin d’obtenir son champ age.
PARAMÈTRES
• Cependant, un opérateur spécial peut être utilisé pour accéder à un champ à partir de l’adresse
d’une structure. Il s’agit de l’opérateur ->, qu’on utilise de la façon suivante :