2012-06-27 10 views

risposta

9

elementi array sono sempre distanziati a distanze uguali nella memoria, in modo da trovare un elemento in un indice richiede una moltiplicazione per la dimensione dell'elemento e un'aggiunta della base dell'array in memoria. Entrambe le operazioni vengono spesso eseguite nello spazio di una singola istruzione nell'hardware utilizzando una modalità di indirizzamento appropriata.

3

sotto ... sua un indirizzo di memoria + (postazione di indice * la dimensione delle cose nella matrice)

0

Prova questo,

1. Arrays are consecutive memory locations which are stored in Heap, as Arrays areobjects in java.

2. Assume i have an Array of String as an instance variable

String [] arr = {1,2,3,4,5};

Ora relativo simili

arr [0] = 1

arr [1] = 2

arr [2] = 3

arr [3] = 4

arr [4] = 5

{1,2,3,4,5} are stored over the heap, and Considering array "arr" as instancevariable, will lives within the object on the heap.

Nowarr conterrà l'indirizzo del primo elemento della matrice che è 1. "arr", che è una variabile di matrice di riferimento oggetto, sarà all'interno dell'oggetto e {1,2,3,4,5} all'esterno da qualche parte nell'heap.

0

elementi array sono memorizzati in un blocco consecutivo, se crescono hanno bisogno di essere spostato in una nuova posizione. Gli elementi sono quindi accessibili utilizzando un offset da cui inizia la matrice.

In C si può accedere all'elemento dell'indice i in un array chiamato un utilizzando due metodi differenti:

  • int arrayElement = a[i];
  • int arrayElement = (int)(a + i * sizeof(int));

Questo è più o meno come è fatto in Java sotto il cofano.

Problemi correlati