C_facile : Introduction au langage C
Cours

Variables structurées et passage de paramètres

Méthode

Si l'on désire afficher les champs d'une variable de type structure « etudiant » à l'aide d'une fonction, il suffit de déclarer :

void afficher_etudiant( struct etudiant un_etu)

{

      printf("\n nom : %s ", un_etu.nom);

      printf("\n prenom : %s ",un_etu.prenom);

      printf("\n moyenne : %f ",un_etu.moyenne);

}

Et ensuite si on utilise :

afficher_etudiant(a); // la variable est supposée contenir ici "paul" "sylve" et 19.0

Nous afficherons :

nom : sylve

prenom : paul

moyenne : 19.0

Comme nous l'avons vu dans le chapitre précédent sur les fonctions, la variable "a" est recopiée dans le paramètre formel "un_etu".

Par contre, si l'on veut modifier le contenu d'une variable structurée dans le corps de la fonction, il faut transmettre un pointeur comme expliqué dans le chapitre 7.

void saisie_etudiant( struct etudiant * un_pt_sur_etu)

{

       printf("\n nom : ");

       scanf("%s ", un_pt_sur_etu->nom);

       printf("\n prenom : ");

       scanf("%s ",un_pt_sur_etu->prenom);

       printf("\n moyenne : ");

       scanf("%f ",&(un_pt_sur_etu->moyenne));

}

Syntaxe

Nous appellerons la fonction de la manière suivante :

saisie_etudiant (&e) ;

Ou encore :

saisie_etudiant (pt_e) ;

Complément

Une autre solution est possible pour la saisie :

// la fonction saisie_II retourne une valeur de type « struct etudiant » et n'a pas de paramètre. struct etudiant saisie_II (void)

{

      struct etudiant etu ; //déclaration de la variable locale « etu »

      printf("\n nom : ");

      scanf("%s ", etu.nom);

      printf("\n prenom : ");

      scanf("%s ", etu.prenom);

      printf("\n moyenne : ");

      scanf("%f ",&( etu.moyenne));

      return etu ;

}

Dans ce cas, le contenu de la variable locale « etu » de la fonction « saisie_II » sera retournée par la fonction.

Puisque l'on peut affecter une variable structurée à une autre de même nature, l'usage en sera :

e= saisie_II () ;

La fonction retourne une valeur qui correspond à une variable structurée, et cette valeur est affectée à la variable structurée « e ».

Déclaration de type (page suivante)Erreurs à ne pas commettre (page Précédente)
AccueilImprimer creativecommons : by-nc-ndRéalisé avec SCENARI