C++ Academy · Leçon

Pourquoi les références sont des alias de variables

Découvrir les références comme des alias déterminés à la compilation, qui ne peuvent être réaffectés ni être nuls

Leçon 1 sur 413 étapes

Pourquoi les références sont des alias de variables est une leçon C++ Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C++ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C++ Academy comprend 4 leçons au total.

Qu’est-ce qu’une référence

Une référence est un alias à la compilation pour une autre variable. Ce n’est ni un pointer ni une copie : c’est le même objet sous un autre nom.

Syntaxe des références

Placez & après le type. Les références doivent être initialisées lors de la déclaration et ne peuvent pas être réattachées.

int x = 10;
int& ref = x;     // ref is an alias for x
ref = 20;         // x is now 20

Comparaison avec les pointeurs

Les références et les pointeurs fournissent tous deux un accès indirect, mais :

  • Les références doivent être initialisées ; les pointeurs peuvent être nuls
  • Les références ne peuvent pas être réaffectées à un autre objet
  • Les références n’utilisent jamais * ni -> : elles ressemblent à des variables ordinaires

Pas de réattachement

Une fois liée, une référence désigne toujours le même objet. Lui affecter une valeur modifie la valeur sous-jacente, et non la référence elle-même.

int a = 1, b = 2;
int& r = a;
r = b;       // a becomes 2, r still refers to a

Les références ont la même adresse

Une référence se comporte comme la variable d’origine. Prendre son adresse donne l’adresse de l’objet référencé.

int x = 42;
int& r = x;
std::cout << (&r == &x);   // 1 (true)

Références constantes

Une référence const est un alias en lecture seule. Elle est utile pour transmettre de gros objets sans les copier.

void print(const std::string& s) {
    std::cout << s;  // can read, not modify
}

Liaison de références constantes à des temporaires

Une référence const prolonge la durée de vie d’un temporaire jusqu’à celle de la référence elle-même, ce qui est pratique dans les expressions.

const std::string& greeting = std::string("Hi");
std::cout << greeting;  // valid

Les références comme types de retour

Les fonctions peuvent renvoyer des références, ce qui est utile pour chaîner des opérations ou donner un accès direct à un membre. Attention à ne jamais renvoyer une référence vers une variable locale !

int& at(std::vector<int>& v, size_t i) {
    return v[i];
}

at(v, 0) = 99;   // modifies v[0]

Ne renvoyez jamais une référence vers une variable locale

La variable locale disparaît lorsque la fonction renvoie son résultat ; la référence devient alors pendante. Il s’agit d’un comportement indéfini.

// BUG
int& bad() {
    int x = 10;
    return x;  // x dies here
}

Références dans les boucles for fondées sur une plage

Les boucles for fondées sur une plage utilisent implicitement des références. auto& obtient une référence ; auto obtient une copie.

Références dans les liaisons structurées

Les liaisons structurées de C++17 peuvent se faire par valeur, par référence ou par référence constante.

std::pair<int, int> p = {1, 2};
auto [a, b] = p;            // copies
auto& [x, y] = p;           // references — modifying x changes p.first

Vérification rapide

Pourquoi une référence ne peut-elle pas être réattachée ultérieurement à une autre variable ?

Récapitulatif

Une référence est un alias à la compilation qui doit être initialisé et ne peut pas être réattaché. Elle ressemble à une variable ordinaire, n’est jamais nulle et n’est jamais réaffectée. Utilisez des références constantes pour les vues en lecture seule.

Gratuit pour commencer

Apprends C++ avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
51
Leçons
203

Questions Fréquemment Posées

La leçon « Pourquoi les références sont des alias de variables » est-elle gratuite ?

Oui — le texte complet de « Pourquoi les références sont des alias de variables » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C++ Academy, passe à CoddyKit PRO. Le cours C++ Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Pourquoi les références sont des alias de variables » ?

Découvrir les références comme des alias déterminés à la compilation, qui ne peuvent être réaffectés ni être nuls Tu pratiques C++ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer C++ Academy ?

Aucune expérience préalable n'est requise. C++ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Pourquoi les références sont des alias de variables » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon C++ Academy ?

Oui. Chaque leçon C++ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Pourquoi les références sont des alias de variables
  2. Passage par valeur ou par référence
  3. Références const et situations appropriées
  4. Durée de vie des références et références pendantes
← Retour à C++ Academy