Recommandé, 2024

Choix De L'Éditeur

Différence entre le pointeur et la référence

Le «pointeur» et la «référence» servent tous deux à pointer ou à faire référence à une autre variable. Cependant, la différence fondamentale entre eux est qu'une variable de pointeur pointe vers une variable dont l'emplacement de mémoire est stocké. La variable de référence est un alias pour une variable qui lui est affectée. Le tableau de comparaison ci-dessous explore les autres différences entre un pointeur et une référence.

Tableau de comparaison

Base de comparaisonAiguilleRéférence
De baseLe pointeur est l'adresse mémoire d'une variable.La référence est un alias pour une variable.
RésultatsLa variable de pointeur renvoie la valeur située à l'adresse stockée dans la variable de pointeur, qui est précédée du signe de pointeur '*'.La variable de référence renvoie l'adresse de la variable précédée du signe de référence '&'.
Les opérateurs*, ->Et
Référence nulleLa variable de pointeur peut faire référence à NULL.La variable de référence ne peut jamais faire référence à NULL.
InitialisationUn pointeur non initialisé peut être créé.Une référence non initialisée ne peut jamais être créée.
Heure d'initialisationLa variable de pointeur peut être initialisée à tout moment du programme.La variable de référence ne peut être initialisée qu'au moment de sa création.
RéinitialisationLa variable de pointeur peut être réinitialisée autant de fois que nécessaire.La variable de référence ne peut plus jamais être réinitialisée dans le programme.

Définition de pointeur

Un «pointeur» est une variable qui contient l'emplacement de la mémoire d'une autre variable. Les opérateurs utilisés par la variable de pointeur sont * et ->. La déclaration de la variable de pointeur contient le type de données de base suivi du signe '*' et du nom de la variable.

 tapez * nom_var; 

Laissez-nous comprendre le pointeur à l'aide d'un exemple.

 int a = 4; int * ptr = & a; cout < 

Ici, nous avons une variable entière a et une variable de pointeur ptr qui stocke l'adresse de la variable a.

Pointeur Arithmétique

La variable de pointeur peut être utilisée avec deux opérateurs arithmétiques «addition» et «soustraction». L'addition est appelée «incrément» et la soustraction, «décrément». Lorsqu'une variable de pointeur est incrémentée, elle pointe vers l'emplacement de mémoire de la variable suivante de son type de base. Lorsqu'une variable de pointeur est décrémentée, elle pointe vers l'emplacement de la mémoire de la variable précédente de son type de base. Par conséquent, un tableau peut être efficacement accédé par une variable de pointeur.

Indirection multiple

Un pointeur pointe sur l'autre variable de pointeur qui pointe vers la valeur cible. Ce type de pointeur est toujours initialisé avec l'adresse d'une autre variable de pointeur. La déclaration d'un pointeur sur un pointeur est la suivante.

 tapez ** nom_var; 

Etudions-le avec un exemple.

 int a = 4; int * ptr1 = & a; int ** ptr2 = & ptr1; cout < 

Pointeur de fonction

Comme nous savons qu'une fonction n'est pas une variable, elle possède néanmoins un emplacement de mémoire pouvant être affecté à une variable de pointeur. Une fois qu'un pointeur pointe sur une fonction, celle-ci peut être appelée avec ce pointeur.

Les points importants à retenir sur le pointeur.

  • La variable de pointeur peut être créée sans son initialisation et elle peut être initialisée n'importe où dans le programme.
  • La variable de pointeur peut être réinitialisée à une autre variable.
  • La variable de pointeur peut faire référence à NULL.

Définition de référence

La variable de référence est utilisée pour faire référence à la variable affectée à cette variable de référence. L'opérateur utilisé par la variable de référence est '&'. La déclaration d'une variable de référence contient un type de base suivi du signe '&' puis du nom de la variable.

 type & nom_var_férer = nom_var; 

Ici, le type est le type de données, l'opérateur & confirme qu'il s'agit d'une variable de référence. Nom_var_faire est le nom de la variable de référence. Nom_var est le nom de la variable, à laquelle nous voulons que la variable de référence se réfère.

Laissez-nous comprendre la variable de référence à l'aide d'un exemple.

 int a = 4; int & b = a; // b fait référence à ab = 6; // maintenant a = 6 

Ici, la variable de type int se voit attribuer une valeur 4. La variable de référence se voit attribuer la variable a, c'est-à-dire que b est le pseudonyme de a. Maintenant, lorsque nous assignons une autre valeur à b, nous modifions la valeur de a. Par conséquent, on peut dire que les modifications apportées à une variable de référence se produiront également dans une variable référée par cette variable de référence.

Le point le plus important est que la variable de référence doit être initialisée au moment de sa création. Une fois la variable de référence initialisée avec une variable, elle ne peut pas être réinitialisée pour faire référence à une autre variable. Au moment où vous affectez une valeur à une variable de référence, vous affectez cette valeur à une variable pointée par une variable de référence. La variable de référence ne peut jamais faire référence à NULL. L'arithmétique ne peut pas être effectuée sur une variable de référence.

La variable de référence peut être utilisée de trois manières:

  • En tant que fonction, retourne une valeur.
  • En tant que paramètre de fonction.
  • En tant que référence autonome.

Principales différences entre le pointeur et la référence

  1. La référence est comme créer un autre nom pour faire référence à une variable afin qu'elle puisse être référencée avec des noms différents. D'autre part, un pointeur est simplement une adresse mémoire d'une variable.
  2. Une variable de pointeur si précédée de '*' renvoie la valeur d'une variable dont l'adresse est stockée dans le pointeur visible. Une variable de référence précédée de '&' renvoie l'adresse de cette variable.
  3. Les opérateurs de pointeur sont * et -> alors que l'opérateur de référence est &.
  4. Une variable de pointeur si ne porte aucune adresse de variable, elle pointe sur null. En revanche, une variable de référence ne peut jamais faire référence à Null.
  5. Vous pouvez toujours créer une variable de pointeur unitialisée, mais nous créons une référence lorsque nous avons besoin d'un alias d'une variable afin que vous ne puissiez jamais créer de référence unitialize.
  6. Vous pouvez réinitialiser un pointeur mais une fois que vous avez initialisé, vous ne pouvez plus le réinitialiser.
  7. Vous pouvez créer un pointeur vide et l'initialiser à tout moment, mais vous ne devez initialiser la référence que lorsque vous créez une référence.

Remarque:

Java ne supporte pas les pointeurs.

Conclusion

Le pointeur et la référence sont tous deux utilisés pour pointer ou référencer une autre variable. Mais les deux diffèrent dans leur utilisation et leur mise en œuvre.

Top