Linguaggio di programmazione C
Puntatori
Cosa sono i "punatori"
Puntatore è un tipo di variabile.
La variabile, utilizzata all'interno di un programma, è una locazione di memoria, che una volta inizializzata, contiene un valore/dato che si modifica durante l'esecuzione dello stesso programma, in base alle sue esigenze di calcolo. La locazione della memoria ha un indirizzo al quele è associato un nome mediate il quale è possibile, all'interno del codice del programma, manipolare il suo contenuto.
Alla variabile è associato un tipo che definisce:
- la dimensione della memoria ad essa destinata;
- l'insieme delle operazioni che su di essa è possibile eseguire.
La variabile di tipo puntatore è utilizzata per contenere un dato numerico che rappresenta l'indirizzo di memoria di un'altra variabile. Per definire un variabile come puntatore è necessario anteporre al nome della variabile un asterisco (*), e, anteponendo l'asterisco, utilizzarla per manipolare il contenuto di un indirizzo di memoria .
// Variabile di tipo intero
int variabile;
// Variabile di tipo 'puntatore' ad intero
int *puntatore;
Nella definizione della variabile puntatore la parola chiave int indica il tipo di dato contenuto nella locazione di memoria
associata alla variabile, al cui indirizzo punta la variabile puntatore. In altre parole si deve informare la variabile puntatore che l'indirizzo della memoria a cui punta contiene un certo tipo di dato, nel caso dell'esempio sopra un tipo intero.
L'operatore '&' restituisce l'indirizzo della variabile e lo associa alla variabile puntatore:
puntatore = &variabile;
Il codice completo che stampa a video l'indirizzo della variabile
#include <stdio.h>
void main() {
// Variabile intera
int variabile;
// Puntatore ad intero
int *puntatore;
// La variabile 'puntatore' viene associata all'indirizzo della variabile 'variabile'
puntatore = &variabile;
// Viene stampato a video l'indirizzo di memoria della variabile 'variabile'
printf("Indirizzo: %p\n",
puntatore
);
}