Premessa:
Ogni tipo di dato occupa un certo spazio in memoria centrale, a seconda della grandezza dell'informazione che può contenere.
La memoria è divisa in locazioni contigue, identificate ognuna da un indirizzo per permetterne la lettura/scrittura.
Poniamo che
type occupi
k byte.
A basso livello che succede? Viene assegnata al tuo programma un'area di memoria di
k*N byte, essendo un array un insieme di
N dati uguali di peso
k.
Dato che questo spazio è
contiguo, ti basterà conoscere la locazione di partenza per lavorare sull'array. La variabile
array sarà quindi nient'altro che un puntatore all'indirizzo di questa locazione.
array[j] significa: "vai alla locazione di memoria puntata da
array, aggiungi
k*j, e prendi i
k byte che seguono".
Ad esempio
array[1] va alla locazione puntata da
array, salta i primi
k byte che rappresentano
array[0], e prende i successivi
k.
Ciao,
Matteo Micanti.