Saltar al contenido

Modelo por capas

Casilleros numerados

Imagina la memoria como una fila larga de casilleros, cada uno con su número de dirección. Un array reserva un tramo de casilleros seguidos y pone un valor en cada uno, en orden.

Con las temperaturas 12, 7, 31 y 9 guardadas desde la dirección 1000, y cada valor ocupando 4 casilleros:

posición 0 1 2 3
valor 12 7 31 9
dirección 1000 1004 1008 1012

Las posiciones se cuentan desde 0. A esa posición se le llama índice. El array también guarda cuántos valores tiene: su longitud.

Como los valores van contiguos (uno pegado al otro), la dirección de cualquier posición sale de una cuenta:

Texto
dirección(i) ← inicio + i × tamaño de un valor

En la figura, la posición 2 tiene el borde grueso: su dirección sale de la cuenta, sin recorrer las anteriores.

Un array en casilleros numeradosCuatro celdas contiguas con los valores 12, 7, 31 y 9, en las posiciones 0 a 3. Cada valor ocupa 4 casilleros. Las direcciones de inicio son 1000, 1004, 1008 y 1012. La celda de la posición 2 está resaltada: su dirección sale de la cuenta 1000 + 2 × 4 = 1008.cada valor ocupa 4 casilleros1273190123posición1000100410081012direccióndirección(2) = 1000 + 2 × 4 = 1008
Las temperaturas 12, 7, 31 y 9 desde la dirección 1000. Borde grueso: la posición 2, cuya dirección sale de una cuenta, sin recorrer las anteriores.

Esta es la primera capa del modelo. Deja fuera la caché del procesador, que verás en la unidad 2.

Un array empieza en la dirección 3000 y cada valor ocupa 4 casilleros. ¿En qué dirección está el valor de índice 6?