Différence entre Pointeur et Référence

Quelle est la différence entre Pointeur et Référence ? Un pointeur est l’adresse mémoire d’un objet. Tandis qu’une référence est un alias pour un objet. Les références sont souvent implémentées à l’aide de pointeurs. Donc les deux sont utilisés pour qu’une variable donne accès à une autre. Pourtant, on ne recommande pas de considérer les références comme des « pointeurs sûrs ». Le caractère * désigne un pointeur et le caractère & désigne une référence.
 
 

Table de comparaison
PointeurRéférence
DéfinitionLe pointeur est l’adresse mémoire d’une variable.La référence est un alias pour une variable.
Opérateurs*, ->&
RetourUn pointeur renvoie la valeur située à l’adresse stockée dans une variable de pointeur qui est précédée du signe « * ».Une référence renvoie l’adresse de la variable précédée du signe de référence « & ».
InitialisationOn peut créer un pointeur sans initialisation.On peut pas créer une référence sans initialisation.
NulleUn pointeur peut faire référence à NULL.Une référence ne peut jamais faire référence à NULL.
Le moment d’initialisationUn pointeur peut être initialisée à tout moment dans le programme.Une référence ne peut être initialisée qu’au moment de sa création.
Tri rapide en CTri rapide en CTri rapide est un algorithme qui repose sur le principe Diviser pour Régner. Les étapes sont les suivantes: Choisissez un élément du tableau, cet élément…Lire plus
Définition de « Pointeurs »

Un pointeur est une variable qui contient l’adresse mémoire d’une autre variable. Un pointeur doit être dé-référencé avec l’opérateur * pour accéder à l’emplacement de mémoire vers lequel il pointe.

int i = 5; 

//Ptr stocke l'adresse de i
int *ptr = &i;

Un pointeur peut être réaffecté. Cette propriété est utile pour l’implémentation de structures de données telles que des listes chaînées, des arbres, etc. Exemple:

int a = 10;
int b = 20;
int *p;
p =  &a;
p = &b;

 
 

Définition de « Références »

Une référence est un alias, c’est-à-dire un autre nom pour une variable existante. Une référence, comme un pointeur, est également implémentée en stockant l’adresse d’un objet.
Une référence peut être considérée comme un pointeur constant (à ne pas confondre avec un pointeur sur une valeur constante!) Avec une indirection automatique, c’est-à-dire que le compilateur appliquera l’opérateur * pour vous.

int i = 5; 

//Une référence (ou un alias) pour i.
int &ref = i; 

Une référence ne peut pas être réaffectée et doit être affectée à l’initialisation.

int a = 10;
int b = 20;
int &ref = a;
Palindrome en CPalindrome en CUn nombre est un palindrome si il s’écrit de la même manière après l’inversion de ce dernier. Exemples: 232, 191, 22022, 111, 666, 12012  …Lire plus
Conclusion

Le pointeur et la référence sont utilisés pour pointer ou renvoyer une autre variable. Mais les deux diffèrent dans leur utilisation et leur implémentation.
 
 

Partagez cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *