Originariamente inviato da gennahouse
cioe so che è la cosa piu difficile da capire nel C, e perche questo mi piacerebbe se qualcuno mi dica prima:
1 a cosa servono i puntatori.
2 come i usano i puntatori.
Prova a usare questa funzione per scambiare tra di loro i valori di due variabili, vedrai che non funzierà:
codice:
void swap(int x, int y) {
   int temp = x;
   x = y;
   y = temp;
}

...
...

int a = 10, b = 5;
swap(a, b);
printf("a = %d, b = %d", a, b); // stampa "a = 10, b = 5"
Prova ora quest'altra versione:
codice:
void swap(int *x, int *y) {
   int temp = *x;
   *x = *y;
   *y = temp;
}

...
...

int a = 10, b = 5;
swap(&a, &b);
printf("a = %d, b = %d", a, b); // stampa "a = 5, b = 10"