2005 – 1

Dopo l’esecuzione della seguente porzione di codice:

#include 
void funzione(int *a, int b)
{
    int temp=*a;
    *a=b;
    b=temp;
}
main()
{
    int a=2;
    int b=5;
    funzione(&a, b);
}

Quanto valgono a e b?


Soluzione: a=5, b=5.


La funzione funzione() assomiglia a una tradizionale funzione scambia() tranne per il passaggio dei parametri misto.

Nel main()

  • a=2
  • b=5

In funzione()

  • temp=(a)=2
  • (a)=b=5
  • b=temp=2

Nel main(), dopo la chiamata

  • (a)=5
  • b=5