C_facile : Introduction au langage C
Cours

Déclaration de variables structurées et initialisation à la déclaration

Exemple

Ci suivent des exemples possibles de déclarations de variables structurées :

struct date d1, d2={01, 01, 2009};

                                  // d1 et d2 sont deux variables structurées construites avec la

                                 // déclaration de structure

                                 // seule d2 est initialisée avec une date

struct date *pt_d ; // variable de type pointeur vers structure

struct etudiant genie = {"vous","non ?",18.7}, cancre = {"l'autre","c'est normal",3.2}, * pt_etu;

Nous utilisons des listes d'initialisation comme pour les tableaux, mais vous remarquez bien dans ces exemples que les valeurs sont de types différents. Vous remarquerez également que chaque liste comporte une valeur par champ. Champs et valeurs sont appariés dans l'ordre des champs. A ce stade, "pt_d" et "pt_etu", les deux pointeurs vers des variables structurées, ne sont pas initialisés. Nous pouvons ensuite écrire les instructions :

pt_d = &d1;

pt_etu = &genie;

Ce qui initialise les pointeurs avec des adresses de variables compatibles avec leurs déclarations. Le compilateur vérifie là encore la concordance de type. Nous pouvons déclarer la structure et déclarer en même temps des variables comme dans l'exemple qui suit :

struct etudiant

{

             char nom[MAX], prenom[MAX];

             float moyenne;

} jean, * paul, philippe, amir;

Ainsi les variables structurées "jean", "philippe" et "amir" seront définies, de même que la variable "pointeur vers" une variable structurée "paul".

Conseil

Nous vous déconseillons cette déclaration simultanée structure-variable, vous risquez de confondre la déclaration de structure (la façon de construire une variable structurée) et la déclaration de variables structurées pour lesquelles le compilateur va utiliser la première déclaration.

Accès aux champs d'une structure et affectation (page suivante)Déclaration d'une structure (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI