Barninga Z
a- a+

Puntatori a puntatori

PUNTATORI 

Puntatori a 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). 

 



Ti potrebbe interessare anche

commenta la notizia