Previous Next Up Index Contents

10.5.2. Passage des paramètres par valeur

En C, le passage des paramètres se fait toujours par la valeur,
c.-à-d. les fonctions n'obtiennent que les valeurs de leurs paramètres et n'ont pas d'accès aux variables elles-mêmes.

Les paramètres d'une fonction sont à considérer comme des variables locales qui sont initialisées automatiquement par les valeurs indiquées lors d'un appel.

A l'intérieur de la fonction, nous pouvons donc changer les valeurs des paramètres sans influencer les valeurs originales dans les fonctions appelantes.

Exemple

La fonction ETOILES dessine une ligne de N étoiles. Le paramètre N est modifié à l'intérieur de la fonction:

void ETOILES(int N)
{
 while (N>0) 
   {
    printf("*");
    N--;
   }
 printf("\n");
}

En utilisant N comme compteur, nous n'avons pas besoin de l'indice d'aide I comme dans la fonction LIGNES définie plus haut.

La fonction TRIANGLE, appelle la fonction ETOILES en utilisant la variable L comme paramètre:

void TRIANGLE(void)
{
 int L;
 for (L=1; L<10; L++)
      ETOILES(L);
}

Au moment de l'appel, la valeur de L est copiée dans N. La variable N peut donc être décrémentée à l'intérieur de ETOILES, sans influencer la valeur originale de L.

Schématiquement, le passage des paramètres peut être représenté dans une 'grille' des valeurs:

Avantages

Le passage par valeur a l'avantage que nous pouvons utiliser les paramètres comme des variables locales bien initialisées. De cette façon, nous avons besoin de moins de variables d'aide.


Previous Next Up Index Contents


Feedback - Copyright © 1993,1996,1997 F.Faber