Une dernière précision

Quand un langage offre le passage de paramètre par valeur, il y a deux possibilités :
  1. soit le paramètre est une constante (donc non modifiable)
  2. 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