- Programmazione » Programmazione » Guida C - Manuale programmazione con articoli e risorse interessanti
Puntatori a puntatori
PUNTATORI
Un puntatore è una variabile che contiene unindirizzo. Perciò è lecito (e, tutto sommato,abbastanza normale) fare uso di puntatori che puntano adaltri puntatori. La dichiarazione di un puntatore a puntatoresi effettua così:
char **pPtr;
In pratica occorre aggiungere un asterisco, in quanto siamoad un secondo livello di indirezione: pPtr non puntadirettamente ad un char; la sua indirezione*pPtr restituisce un altro puntatore achar, la cui indirezione, finalmente, restituisce ilchar agognato. Presentando i puntatori èstato analizzato il significato di alcune espressioni; inparticolare si è detto che in **numPtr, ovenumPtr è un puntatore a float, ilprimo "*" è ignorato:l'affermazione è corretta, perché puressendo 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 puntatoria puntatori è forse quello degli array di stringhe:dal momento che in C una stringa è di per sé unarray (di char), gli array di stringhe sono gestiticome array di puntatori a char. A questo puntoè chiaro che il nome dell'array (in C il nome diun 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 dipPtr (con una semplificazione "umana" maun po' pericolosa potremmo dire che viene visualizzata laterza stringa dell'array).
- Articolo precedente I puntatori C void
- Articolo successivo L'accessibilità e la durata delle variabili