Code:
1 2 3 4 5 6 7
| int produit( int a , int b ) { // les 2 paramètres sont a et b
return a * b; // la valeur retournée est le résultat du calcul
}
int main() {
int a = 2;
int z = produit( a+1 , a ); // Les 2 arguments sont a+1 et a, la valeur récupérée est z
} |
Dans l'exemple la fonction a reçu dans a la valeur 3 et dans b la valeur 2. Elle ne connait pas l'origine, par exemple le fait que b (de la fonction) est directement la copie de a (de main)
Pour le retour, c'est pareil dans l'autre sens. La valeur calculée de l'expression dans return est transmise à la variable de l'appelant.
Dans une fonction, on n'a à regarder que ce qui est écrit dans la fonction, on "oublie" l'extérieur, la fonction doit faire son boulot et retourner un résultat. Du côté de l'appelant, on lui passe ce dont elle a besoin et on récupère son résultat, ce qui se passe dans la fonction c'est son problème.