Ti faccio un piccolo esempio.
Immagina allo scambio dei parametri,esso può essere sia per valore che per riferimento. Nel primo caso tu passi alla funzione una copia del dato su cui deve lavorare, nel secondo caso gli passi direttamente il dato perchè magari tale fuzione, al termine delle sue operazioni, ne altera il valore.
Come avviene quest'ultimo passaggio?? Grazie ai puntatori..
Vedile come delle variabili integer che contengono l'indirizzo della variabile a cui puntano,quindi,nel momento in cui passi un dato per riferimento, tu dai alla funzione l'indirizzo della locazione di memoria che contiene quel dato.
Pure il passaggio per valori può essere fatto attraverso i puntatori anche e soprattutto quando il dato da passare è di dimensioni notevoli:anzichè copiarlo e perdere molto tempo è preferibile indicare dove è memorizzato.Ad esempio:
void stampa ( const int &i )
Il simbolo & ti restituisce l'indirizzo della variabile che lo segue ( i ), grazie a const suggerisci alla funzione di non alterarla e il gioco è fatto!!!Ho messo int e forse non è il più calzante degli esempi,ma al suo posto puoi benissimo mettere una struct,un array,o comunque qualcosa di più corposo...
Questa è solo una delle tante applicazioni dei puntatori..
Se vuoi ne possiamo continuare a parlare...
Tieni a mente che contengono un indirizzo, un riferimento a un dato qualsiasi, semplice o strutturato!!!
Spero di essere stato chiaro..fammi sapere!!

Rispondi quotando