Effectivement c'est une question à laquelle la réponse est un peu ambiguë.
Une référence est en fait un pointeur qui se cache, donc avec elle tu stockes l'adresse mais finalement tu manipules bien la valeur de l'objet puisque le déréférencement est automatique.
Démonstration :
int a = 7;
int &b = a;
b = 10;
Maintenant a vaut 10 : quand tu as écrit b = 10 c'est bien la valeur et non l'adresse que tu as modifié. Mais pour y parvenir C++ a mémorisé l'adresse, en fait il te cache le pointeur c'est à dire que c'est comme si tu avais écrit ceci :
Answers & Comments
Verified answer
Effectivement c'est une question à laquelle la réponse est un peu ambiguë.
Une référence est en fait un pointeur qui se cache, donc avec elle tu stockes l'adresse mais finalement tu manipules bien la valeur de l'objet puisque le déréférencement est automatique.
Démonstration :
int a = 7;
int &b = a;
b = 10;
Maintenant a vaut 10 : quand tu as écrit b = 10 c'est bien la valeur et non l'adresse que tu as modifié. Mais pour y parvenir C++ a mémorisé l'adresse, en fait il te cache le pointeur c'est à dire que c'est comme si tu avais écrit ceci :
int a = 7;
int *b = &a;
*b = 10;
toujours une adresse puisqu'une reference pointe sur l'adresse d'une variable