Le passage par valeur te permet de transmettre à ta fonction une copie de ta variable. Toutes les opérations que tu feras dessus ne la modifieront pas, mais modifieront seulement sa copie.
Le passage par référence transmet à ta fonction l'adresse mémoire de ta variable. Donc, tu pourras accéder directement au contenu de ta variable par le biais de cette adresse.
Exemple de passage par valeur :
void ParValeur(int var)
{
var += 5;
}
void main(void)
{
int mavar = 4;
ParValeur(mavar);
printf("%d\n",mavar);
}
A l'éxécution, tu t'apercevras que mavar vaut 4 et non 9, car on a transmis une copie de mavar à la fonction ParValeur, par conséquent, toute modif faite dans cette fonction n'est pas répercutée dans la fonction main()
Par référence :
void ParRef(int *var)
{
*var += 5;
}
void main(void)
{
int mavar = 4;
ParRef(&mavar);
printf("mavar = %d\n", mavar);
}
Ici, mavar t'affichera la valeur 9, car on a transmis l'adresse de mavar (via l'opérateur &). Donc la fonction ParRef agit directement sur le contenu de cette adresse, qui est la valeur de mavar. Donc cette valeur est directement modifiée.
En espérant avoir été assez clair. Je te conseille de voir un cours sur les pointeurs si tout ceci te parait obscur
A+
[jfdsdjhfuetppo]--Message édité par Harkonnen--[/jfdsdjhfuetppo]