Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une référence, comme un pointeur, stocke l'adresse d'un objet situé ailleurs dans la mémoire. À la différence d’un pointeur, une référence, après son initialisation, ne peut pas être définie pour faire référence à un autre objet ni être définie sur null. Il existe deux types de références : les références lvalue, qui font référence à une variable nommée et les références rvalue qui font référence à un objet temporaire. L'opérateur & désigne une référence lvalue et l'opérateur &&; désigne une référence rvalue ou une référence universelle (soit rvalue, soit lvalue) en fonction du contexte.
Les références peuvent être déclarées à l'aide de la syntaxe suivante :
[spécificateurs-classe-stockage] [qualificateurs-cv] spécificateurs-type [modificateur-ms] déclarateur [
=expression];
Tout déclarateur valide spécifiant une référence peut être utilisé. La syntaxe simplifiée suivante s'applique, sauf si la référence est une référence à un type de fonction ou à un type tableau :
[spécificateurs-classe-stockage] [qualificateurs-cv] spécificateurs-type [
&ou&&] [qualificateurs-cv] identificateur [=expression];
Les références sont déclarées à l'aide de la séquence suivante :
Les spécificateurs de déclaration :
- Spécificateur de classe de stockage facultatif.
- Qualificateurs facultatifs
constet/ouvolatile. - Spécificateur de type : nom d'un type.
Déclarateur :
Modificateur spécifique à Microsoft facultatif. Pour plus d'informations, consultez Modificateurs spécifiques Microsoft.
L’opérateur
&ou l’opérateur&&.Qualificateurs facultatifs
constet/ouvolatile.L'identificateur.
Initialiseur facultatif.
Les formes de déclarateur les plus complexes pour les pointeurs vers des tableaux et des fonctions s'appliquent également aux références vers des tableaux et des fonctions. Pour plus d’informations, consultez Pointeurs.
Plusieurs déclarateurs et initialiseurs peuvent apparaître dans une liste séparée par des virgules après un spécificateur de déclaration unique. Par exemple :
int &i;
int &i, &j;
Les références, les pointeurs et les objets peuvent être déclarés ensemble :
int &ref, *ptr, k;
Une référence contient l'adresse d'un objet, mais se comporte syntaxiquement comme un objet.
Dans le programme suivant, notez que le nom de l'objet, s, et la référence à l'objet, SRef, peuvent être utilisés de la même manière dans les programmes :
Exemple
// references.cpp
#include <stdio.h>
struct S {
short i;
};
int main() {
S s; // Declare the object.
S& SRef = s; // Declare and initialize the reference.
s.i = 3;
printf_s("%d\n", s.i);
printf_s("%d\n", SRef.i);
SRef.i = 4;
printf_s("%d\n", s.i);
printf_s("%d\n", SRef.i);
}
3
3
4
4
Voir aussi
Arguments de fonction de type référence
Retours de fonction de type référence
Références aux pointeurs