Perché usare riferimenti come alias delle variabili
Introduca i riferimenti come alias valutati in fase di compilazione che non possono essere riassegnati né nulli
Perché usare riferimenti come alias delle variabili è una lezione C++ Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C++ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C++ Academy include 4 lezioni in totale.
Che cos'è un riferimento?
Un riferimento è un alias a tempo di compilazione per un'altra variabile. Non è un puntatore né una copia: è lo stesso oggetto con un nome diverso.
Sintassi dei riferimenti
Utilizzi & dopo il tipo. I riferimenti devono essere inizializzati alla dichiarazione e non possono essere riassociati.
int x = 10;
int& ref = x; // ref is an alias for x
ref = 20; // x is now 20Confronto con i puntatori
Sia i riferimenti sia i puntatori forniscono un accesso indiretto, ma:
- I riferimenti devono essere inizializzati; i puntatori possono essere null
- I riferimenti non possono essere riassegnati a un altro oggetto
- I riferimenti non utilizzano mai
*o->: si comportano come normali variabili
Nessuna riassociazione
Una volta associato, un riferimento si riferisce sempre allo stesso oggetto. Assegnargli un valore modifica il valore sottostante, non il riferimento in sé.
int a = 1, b = 2;
int& r = a;
r = b; // a becomes 2, r still refers to aI riferimenti hanno lo stesso indirizzo
Un riferimento si comporta come se fosse la variabile originale. Prenderne l'indirizzo restituisce l'indirizzo dell'oggetto referenziato.
int x = 42;
int& r = x;
std::cout << (&r == &x); // 1 (true)Riferimenti const
Un riferimento const è un alias di sola lettura. È utile per passare oggetti di grandi dimensioni senza copiarli.
void print(const std::string& s) {
std::cout << s; // can read, not modify
}Associare riferimenti const a temporanei
Un riferimento const estende la durata di vita di un temporaneo fino alla durata di vita del riferimento stesso: è utile nelle espressioni.
const std::string& greeting = std::string("Hi");
std::cout << greeting; // validRiferimenti come tipi restituiti
Le funzioni possono restituire riferimenti: è utile per concatenare operazioni o per fornire accesso diretto a un membro. Faccia attenzione a non restituire un riferimento a una variabile locale!
int& at(std::vector<int>& v, size_t i) {
return v[i];
}
at(v, 0) = 99; // modifies v[0]Non restituisca mai un riferimento a una variabile locale
La variabile locale viene distrutta quando la funzione restituisce il risultato; il riferimento diventa dangling. Questo comportamento non è definito.
// BUG
int& bad() {
int x = 10;
return x; // x dies here
}Riferimenti nei cicli for basati su intervallo
Il ciclo for basato su intervallo utilizza implicitamente i riferimenti. auto& ottiene un riferimento; auto ottiene una copia.
Riferimenti nei binding strutturati
I binding strutturati di C++17 possono essere associati per valore, per riferimento o per riferimento const.
std::pair<int, int> p = {1, 2};
auto [a, b] = p; // copies
auto& [x, y] = p; // references — modifying x changes p.firstVerifica rapida
Perché un riferimento non può essere riassociato in seguito a un'altra variabile?
Riepilogo
Un riferimento è un alias a tempo di compilazione che deve essere inizializzato e non può essere riassociato. Si comporta come una normale variabile, non è mai null e non può essere riassegnato. Utilizzi riferimenti const per viste di sola lettura.
Domande Frequenti
La lezione «Perché usare riferimenti come alias delle variabili» è gratuita?
Sì — il testo completo di «Perché usare riferimenti come alias delle variabili» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C++ Academy, passa a CoddyKit PRO. Il corso C++ Academy include 4 lezioni in totale.
Cosa imparerò in «Perché usare riferimenti come alias delle variabili»?
Introduca i riferimenti come alias valutati in fase di compilazione che non possono essere riassegnati né nulli Eserciti C++ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C++ Academy?
Non è richiesta alcuna esperienza precedente. C++ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Perché usare riferimenti come alias delle variabili»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C++ Academy?
Sì. Ogni lezione C++ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché usare riferimenti come alias delle variabili
- Passaggio per valore e per riferimento a confronto
- Riferimenti const e quando usarli
- Durata dei riferimenti e riferimenti dangling