Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 89 di 93
  • livello avanzato
Indice lezioni

che cos'è una variabile puntatore

Una variabile puntatore è una variabile che contiene l'indirizzo di memoria di un'altra variabile.
Una variabile puntatore è una variabile che contiene l'indirizzo di memoria di un'altra variabile.
Link copiato negli appunti

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;

Ti consigliamo anche