Passaggio dati per riferimento

Abbiamo visto che una funzione può ritornare un solo numero.

C'è un modo per passare ad una funzione dei dati e fare in modo che la funzione li possa modificare. Già gli array sono fatti così. La stessa cosa è possibile utilizzando l'operatore & per tutti gli altri tipi di dati.

Prova a rispondere alle seguenti domande:

  1. Scrivi a fianco delle linee con l'asterisco l'output che pensi che abbiano prima di provare il codice
  2. Prova il codice
  3. Modifica il codice dell'esercizio push/pop precedente in modo da utilizzare tutte funzioni di tipo void come nell'esempio sottostante

Quindi carica su moodle un piccolo programma che risolve il punto tre.

#include <iostream>
using namespace std;

void stampa(int a, int b) {
	cout << "a: " << a << " b: " << b << endl;
}

void scambiaVal(int x, int z) {
	int t;
	t = x;
	x = z;
	z = t;
}

void scambiaRif(int &x, int &z) {
	int t;
	t = x;
	x = z;
	z = t;
}

int main() {
	int a, b;
	a = 3;
	b = 5;
	cout << a << endl; // *
	cout << &a << endl; // *
	stampa (a, b); // *
	scambiaVal(a, b); // *
	stampa (a, b); // *
	scambiaRif(a, b); // *
	stampa (a, b); // *
	
	return 0;
}

Maggiori informazioni su cplusplus

Buon lavoro!