Cours 12.4. Structures et fonctions

Les structures, au même titre que les variables peuvent être passées en paramètres dans des fonctions.

Passage par valeur

Lorsqu'une structure est passée en paramètre à une fonction, son contenu est copié localement dans son argument respectif, comme pour les variables.

// Passage par valeur
void fct (struct vector v);

Si une fonction doit modifier le contenu d'une structure, il faut utiliser un passage par variable.

Passage par variable

Comme pour les variables, passer un pointeur de structure en paramètre d'une fonction lui permet d'accéder à son contenu en lecture et en écriture.

// Passage par variable
void fct (struct vector * v);

Notons que dans le cas d'un pointeur de structure, les champs sont accessibles avec l'opérateur -> :

// Champ x du pointeur de structure v
v->x

Exercices

Exercice 1

Créer une structure vector qui contient les coordonnées d'un vecteur en 3 dimensions. Écrire une fonction norm() qui reçoit un vecteur en paramètre et retourne la norme (la longueur) du vecteur.

Dans le programme principal, demander à l'utilisateur de saisir les coordonnées de chaque composante du vecteur et afficher sa longueur.

Voici un exemple de calcul de la norme :

x=2.3
y=3.4
z=4.5
La norme du vecteur est : 6.090977

Exercice 2

Créer une structure notes qui contient trois notes (ds, td et tp) et une moyenne moyenne. Écrire une fonction calcMoyenne() qui calcule et actualise le champ moyenne de la structure en calculant la moyenne des trois notes. Voici un exemple :

cm = 10.4
td = 12.8
tp = 16.4
---------------
Moyenne = 13.20

Quiz

Pourquoi n'y a t-il pas de véritable question dans ce quiz ?

Vérifier Bravo ! Est-ce que quelqu'un, un jour, lira vraiment cette ligne ... Essaie encore ...

Voir aussi


Dernière mise à jour : 04/12/2022