View Single Post
Old 25-11-2012, 17:21   #3
matteo micanti
Junior Member
 
L'Avatar di matteo micanti
 
Iscritto dal: Aug 2008
Messaggi: 25
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.

Codice:
type array[N];
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.

Ultima modifica di matteo micanti : 25-11-2012 alle 17:26.
matteo micanti è offline   Rispondi citando il messaggio o parte di esso