Riferimenti come parametri
Lezione 9 di 14 del corso Puntatori in C++ di Coddy.
Ora possiamo vedere come sia possibile semplificare il lavoro usando i riferimenti come argomenti quando si chiamano le funzioni.
Se torniamo alla lezione sul passaggio dei puntatori come parametri, abbiamo spiegato che quando passiamo valori a una funzione, i valori su cui operiamo all'interno della funzione sono copie dei valori originali che abbiamo passato.
Abbiamo usato i puntatori per risolvere questo problema, ma invece di usare indirizzi, dereferenziazione, puntatori e così via, possiamo semplicemente indicare come riferimenti i parametri che riceviamo e svolgere il nostro normale lavoro come faremmo con valori regolari
// Invece di questo
void swap(int *x, int *y) {
int temp = *x;
*x = *y;
*y = temp;
cout << *x << " " << *y << endl;
}
// Possiamo fare così
void swap(int &x, int &y) {
int temp = x;
x = y;
y = temp;
cout << x << " " << y << endl;
}Ora, se chiamiamo la funzione swap(), i valori dei due interi che passiamo verranno modificati in modo permanente. Quindi, invece di prendere gli indirizzi di memoria dei valori e modificare i valori in corrispondenza di quegli indirizzi di memoria dereferenziandoli, passiamo semplicemente come argomenti i riferimenti ai valori effettivi e lavoriamo su di essi. Poiché fanno riferimento ai valori originali, qualsiasi modifica è permanente
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileCompleta la funzione Calculator di due lezioni fa, ma invece di usare i puntatori, usa i riferimenti ai valori delle variabili large e small. Nella funzione, sottrai a large la differenza tra large e small e somma small a se stessa.
Input
5 3
Output
5 3
3 6
Spiegazione
Sottraendo a 5 la differenza tra 5 e 3, che è 2, si ottiene 5 - 2 = 3, mentre sommando 3 a 3 si ottiene 6
Nota: NON scrivere la funzione main()
Provalo tu
#include <iostream>
using namespace std;
void Calculator(// Prendi gli argomenti: large e small come riferimenti) {
// Inserisci il codice per i calcoli
}
// NON scrivere la funzione main()Tutte le lezioni di Puntatori in C++
2Puntatori e riferimenti
Puntatori come parametriRiferimenti - &Riferimenti come parametriPuntatori vs riferimenti3Allocazione dinamica della memoria
Operatori new e deleteMemory leakArray dinamicoArray dinamico - inserimentoEsercitati da solo: Compilatore C++ online