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"