Quando si dichiara un array, in realtà si dichiara un puntatore, con alcune caratteristiche in più: la dichiarazione di un puntatore comporta allocazione di memoria per una variabile puntatore, ma non per la variabile puntata.
Una dichiarazione di array consiste di due fasi: creazione del riferimento e allocazione dello spazio necessario a memorizzare gli elementi. Quindi una variabile di tipo array è solo un riferimento o puntatore all'area di memoria dove viene allocato l'array.
In che modo è possibile gestire un array con un puntatore?
Quindi per raggiungere un elemento qualsiasi dell'array utilizzando un puntatore, l'istruzione puo' essere: ptr + i = a[i] Attenzione: non c'e alcun limite di controllo per array e pointer, cosi' e' facilmente possibile oltrepassare la memoria prevista per un array e sovrascrivere altre cose.
Un puntatore può essere inizializzato con un indirizzo di memoria, con il valore zero o con il valore speciale NULL: quest'ultimo è una particolare costante definita all'interno del file di intestazione stddef.
Per accedere al puntatore di utilizza l'operatore di dereferenziazione o in direzione *. Per accedere e modificare il contenuto di una variabile si usa il riferimento diretto con il nome della variabile o con riferimento indiretto all'indirizzo di memoria contenuto nella variabile del puntatore.