Se il corrispondente
parametro attuale è la variabile Y, basterà
passare invece l'indirizzo di (il puntatore a) Y, scritto &Y.
Chiaramente nel corpo della funzione occorrerà utilizzare
l'operatore contenuto (*) quanfo si vorrà accedere al
contenuto della variabile passata come parametro.
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.
ESEMPIO
#include <stdio.h>
void SWAP(int * x, int * y)
{
int aux;
aux = *x; /* contenuto della variabile puntata da x in aux */
*x = *y; /* contenuto della variabile puntata da y in quella puntata da x */
*y = aux; /* contenuto di aux nella variabile puntata da 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);
}
ESERCIZIO