Quand un langage offre le passage de paramètre par valeur, il y a deux
possibilités :
- soit le paramètre est une constante (donc non modifiable)
- soit le paramètre est une variable locale à la procédure. Cette variable
est initialisée lors de l'appel de la procédure avec la valeur du paramètre
effectif.
C'est la seconde solution qui a été retenue par les concepteurs du langage C.
Voyons sur un exemple. Supposons que l'on désire écrire une fonction
sum admettant comme paramètre n et qui rende la somme des n
premiers entiers. On peut programmer de la manière suivante :
int sum(int n)
{
int r = 0;
for ( ; n > 0; n--) r = r + n;
return(r);
}
On voit que le paramètre n est utilisé comme variable locale, et que
dans l'instruction for, la partie initialisation est vide puisque n
est initialisée par l'appel de sum.
Matthieu Moy
2017-02-08