- Programmazione » Programmazione » Guida C - Manuale programmazione con articoli e risorse interessanti
Puntatori a puntatori
PUNTATORI
Un puntatore è una variabile che contiene un indirizzo. Perciò è lecito (e, tutto sommato, abbastanza normale) fare uso di puntatori che puntano ad altri puntatori. La dichiarazione di un puntatore a puntatore si effettua così:
char **pPtr;
In pratica occorre aggiungere un asterisco, in quanto siamo
ad un secondo livello di indirezione: pPtr non punta
direttamente ad un char; la sua indirezione
*pPtr restituisce un altro puntatore a
char, la cui indirezione, finalmente, restituisce il
char agognato. Presentando i puntatori è
stato analizzato il significato di alcune espressioni; in
particolare si è detto che in **numPtr, ove
numPtr è un puntatore a float, il
primo "*" è ignorato:
l'affermazione è corretta, perché pur
essendo numPtr e pPtr entrambi puntatori,
il secondo punta ad un altro puntatore, al quale può
essere validamente applicato il primo dereference operator
("*").
L'ambito di utilizzo più frequente dei puntatori
a puntatori è forse quello degli array di stringhe:
dal momento che in C una stringa è di per sé un
array (di char), gli array di stringhe sono gestiti
come array di puntatori a char. A questo punto
è chiaro che il nome dell'array (in C il nome di
un array è anche puntatore all'array stesso)
è un puntatore a puntatori a char[22]. Pertanto,
ad esempio,
printf(pPtr[2]);
visualizza la stringa puntata dal terzo elemento di pPtr (con una semplificazione "umana" ma un po' pericolosa potremmo dire che viene visualizzata la terza stringa dell'array).
- Articolo precedente I puntatori void
- Articolo successivo L'accessibilità e la durata delle variabili
Ti potrebbe interessare anche
commenta la notizia
Chiedi alla nostra Redazione!