Si consideri il seguente frammento di codice:
void foo(int *a, int b) { int temp=*a; *a=b; b=temp; } main() { int a=1; int b=5; foo(&a, b); }Quanto valgono le variabili a e b alla fine dell’esecuzione?
Soluzione: a=5 e b=5.
La funzione foo() è una funzione scambia() con il parametro b passato per valore piuttosto che per riferimento…
La variabile a diventa 5, la variabile b rimane 5.