I puntatori hanno moltissimi usi (elencarli tutti non credo sia conveniente).
Ti faccio un esempio per capire l'importanza di un puntatore:
se hai una funzione che riceve un parametro e questa funzione deve modificare questo parametro, senza nessun tipo di ritorno (una procedura, in poche parole, non una function) se non la modifica del parametro, devi dichiarare un puntatore:
Questo programma, per esempio, non visualizza il valore corretto: il quadrato di 4 è 16 non 4!
Questo, invece, lo visualizza corretto:codice:void elevaAlQuadrato(int parametro) { parametro = parametro * parametro; } main() { int a = 4; elevaAlQuadrato(a); printf("Il quadrato è: %d\n", a); }
Come si può notare, nella funzione è dichiarato un puntatore ad intero e nella chiamata gli si passa l'indirizzo dell'intero. A questo punto, la funzione modifica il valore contenuto nell'indirizzo 'parametro' (il valore della variabile a) cosicchè 'a' verrà modificato.codice:void elevaAlQuadrato (int *parametro) { parametro = parametro * parametro; } main() { int a = 4; elevaAlQuadrato(&a); printf("Il quadrato è: %d\n", a); }
Spero di essere stato sufficientemente chiaro (di solito non lo sono!)
Ciao.



Rispondi quotando