Questa è la ragione dello strano modo di utilizzare scanf; infatti essa è una funzione C predefinita parametrizzata su delle variabili, e quindi i parametri attuali delle sue chiamate devono essere dei puntatori.
#include <stdio.h>
void SWAP(int * x, int * y)
{
int aux;
aux = *x; /* contenuto del contenuto di x in aux */
*x = *y; /* contenuto del contenuto di y in x */
*y = aux; /* contneuto di aux nel contenuto di y */
}
main(){
int a = 5, b = 10;
SWAP(&a, &b); /* i parametri attuali sono i puntantori (indirizzi) di a e b */
printf("i valori di a e b sono %d e %d \n",a,b);
}