Menu
Coddy logo textTech

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

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

Sfida

Facile

Completa 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++

Esercitati da solo: Compilatore C++ online