che cos’è una variabile puntatore

17 marzo 2006

Una variabile puntatore è una variabile che contiene l’indirizzo di memoria di un’altra variabile. Ad esempio, si supponga di avere una variabile intera chiamata x ed un’altra variabile (quella puntatore appunto) chiamata p_x che è in grado di contenere l’indirizzo di una variabile di tipo int. In C++, per conoscere l’indirizzo di una variabile, è sufficiente far precedere al nome della variabile l’operatore &. La sintassi per assegnare l’indirizzo di una variabile ad un’altra variabile è la seguente:

p_x = & x;

In genere, quindi, una variabile che contiene un indirizzo, come ad esempio p_x, viene chiamata variabile puntatore o, più semplicemente, puntatore. Per chiarire ulteriormente questo concetto, guardiamo la figura seguente:

figura

Supponiamo che la variabile intera x, raffigurata nel riquadro di sinistra, sia allocata all’indirizzo di memoria 7500. La variabile p_x, ovvero la variabile puntatore, inizialmente non contiene alcun valore (ovvero nessun indirizzo).
Nel momento in cui viene eseguita l’istruzione:

p_x = & x;

la variabile puntatore conterrà l’indirizzo della variabile x. Cioè:

figura

La freccia viene tracciata dalla cella che conserva l’indirizzo verso la cella di cui si conserva l’indirizzo.
Per accedere al contenuto della cella il cui indirizzo è memorizzato in p_x è sufficiente far precedere alla variabile puntatore il carattere asterisco (*). In tal modosi è deindirizzato il puntatore p_x.

Ad esempio, se si prova ad eseguire le due istruzioni seguenti:

p_x = & x;
*p_x = 20;

il valore della cella x sarà 20. Graficamente otterremo:

figura

Si noti che se p_x contiene l’indirizzo di x, entrambe le istruzioni che seguono avranno lo stesso effetto, ovvero entrambe memorizzeranno nella variabile x il valore 20:

x = 20;
*p_x = 20;

Tutte le lezioni

1 ... 46 47 48 ... 55

Se vuoi aggiornamenti su che cos'è una variabile puntatore inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su che cos'è una variabile puntatore

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy