2008 – 1

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.