But de la scéance :
Nous allons observer, à travers un exemple, la
différence entre le passage de paramètre par valeur et celui
par variable. Que fait la fonction f lorsqu'elle
est déclarée de la façon (A) (passage par valeur)
puis lorsqu'elle est déclarée de la façon (B).
{
int temp_res;
if (n == 0)
return(n);
else
{
n = n - 1;
temp_res = f(n);
return(temp_res + n + 1);
}
}
{
int temp_res;
if (*n == 0)
return(n);
else
{
*n = *n - 1;
temp_res = f(&n);
return(temp_res + *n + 1);
}
}
On étudie une fonction afMir qui étant donné un mot M (séquence de lettres stockées dans un tableau) affiche la chaîne de caractères formée de la concaténation du mot M et de son image miroir. Par exemple, afMir(" abcde ") affiche la chaîne " abcdeedcba " à partir de la position courante du curseur. Aprés l'affichage, le curseur se trouve en première position de la ligne suivante. Ecrire la fonction afMir, de façon récursive, avec le langage C.