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