Opérateur de référence en C++

Muhammad Husnain 11 décembre 2023
  1. Utiliser l’opérateur de référence en C++
  2. Comparer la variable de référence et la variable de pointeur en C++
Opérateur de référence en C++

Cet article se concentrera sur l’opérateur de référence &, également appelé opérateur adresse de.

Bien que l’opérateur de référence fonctionne de manière similaire dans plusieurs cas, il présente peu de différences entre les différents langages de programmation. Nous nous concentrerons sur ses utilisations dans le langage de programmation C++ uniquement.

Tout d’abord, nous apprendrons sa syntaxe et ses concepts de base. Ensuite, nous répondrons à la confusion courante concernant l’utilisation des opérateurs de référence dans différents contextes.

Utiliser l’opérateur de référence en C++

Syntaxe pour déclarer une variable de référence :

int &ref = m;
int & ref = m;
int& ref = m;
Noter
Il est obligatoire d’initialiser une variable de référence à la déclaration.

L’opérateur & a des utilisations et des significations différentes selon le contexte dans lequel il est utilisé. La section suivante décrit les tâches que l’opérateur de référence effectue en C++.

Exemple:

// Simple integer type variable intialization
int m = 12;

// ref is a reference to m
int& ref = m;

// Print value of m
cout << "Original m = " << m << endl;
ref = 20;

// Print value of ref
cout << "Modified m = " << m << endl;

Dans le code ci-dessus, nous avons stocké 12 dans la variable m. Ensuite, nous avons pointé le ref sur le m en utilisant l’opérateur de référence.

Ici, pointer signifie que ref a l’adresse mémoire de la variable m. Ainsi, lorsque nous mettons à jour la valeur de m, nous obtenons la même valeur mise à jour via la variable ref, qui est la variable de référence.

En bref, la variable ref est devenue un alias vers une autre variable, m. On peut aussi dire que ref est juste un autre nom pour la variable réelle nommée par m.

Nous avons assigné 20 à ref dans l’extrait de code ci-dessus. Ce changement sera également visible sur m ayant une valeur actualisée de 20.

Production:

Original m = 12
Modified m = 20

Comparer la variable de référence et la variable de pointeur en C++

Habituellement, les apprenants confondent la variable de référence avec la variable de pointeur.

Dans la section précédente, nous avons discuté en détail de la variable de référence avec des exemples.

Pour définir, une variable pointeur stocke l’adresse d’une variable dans la mémoire. Il utilise l’opérateur de référence pour initialiser ou définir ses valeurs.

Voir le code ci-dessous pour comprendre l’utilisation de & avec une variable de pointeur ; ensuite, nous discuterons des différences.

// Integer type variable intialization
int number = 88;

// Declare a pointer variable
int* ptrNumber;

// Assign the address of the "number" to "ptrNumnber"
ptrNumber = &number;

// Declare another int pointer and initialize it with the address of the number
int* pAnother = &number;

Dans ce code, nous avons d’abord déclaré une variable de pointeur ptrNumber, puis nous avons attribué l’adresse de number dans la troisième instruction. Ici, & sert d’opérateur adresse de et renvoie l’adresse mémoire de number, qui est ensuite affectée au pointeur ptrNumber.

La dernière instruction de l’extrait ci-dessus attribue l’adresse de number à un autre pointeur, pAnother à la déclaration. Il est important de noter que les variables de pointeur sont différentes des variables de référence.

Examinons les différences à l’aide du tableau ci-dessous.

Variable de pointeur Variable de référence
Le pointeur conserve l’adresse mémoire d’une variable. La variable de référence est un alias pour une autre variable.
Un opérateur d’indirection * permet de déréférencer un pointeur. La variable de référence est un pointeur constant, qui n’a pas besoin d’être déréférencé.
Il peut être réaffecté pour faire référence à une variété d’éléments. Il doit être attribué au moment de l’initialisation et les valeurs d’adresse ne peuvent pas être modifiées une fois qu’elles ont été formées.
Une valeur NULL peut être directement affectée à une variable pointeur. La valeur NULL ne peut pas être définie directement.

L’opérateur &, lorsqu’il est utilisé avec des paramètres formels dans une fonction, en fait des paramètres de référence. Plus d’informations sur les paramètres de référence et de valeur ici.

Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn

Article connexe - C++ Operator