que estaba leyendo este question, quería preguntar más sobre el código que mostró es decirconfunden entre la localidad temporal y espacial en el código de la vida real
for(i = 0; i < 20; i++)
for(j = 0; j < 10; j++)
a[i] = a[i]*j;
Las preguntas son,
- entiendo localidad temporal, creo que las referencias a i y j deben ser localidad temporal. ¿Estoy en lo cierto?
- También entiendo la localidad espacial, ya que la pregunta que he vinculado responde que las referencias a una [i] deberían ser una localidad espacial. ¿Estoy en lo cierto?
La persona dijo,
"El bucle interno llamará misma dirección de memoria al acceder a [i] diez veces de modo que es un ejemplo para la localidad temporal supongo. Pero, ¿existe localidad espacial también en el ciclo de arriba? "
No estoy de acuerdo con su suposición. Como las referencias generadas por un [i] deben ser una localidad espacial (se referirán al siguiente elemento en el bloque). ¿Estoy en lo cierto?
Gracias por la respuesta. ¿Puedes aclarar mis conceptos sobre variables y localidad? La variable j se incrementará cada vez que se ejecute el bucle interno y obtendrá un nuevo valor. Obtener un nuevo valor NO es una localidad espacial (a pesar de que se incrementa en 1 cada vez)? –
@Akito la ubicación espacial correcta solo puede ocurrir entre dos * ubicaciones * diferentes en la memoria. Como 'j' se refiere a la misma ubicación cada vez, las referencias a' j' no son espacialmente locales. – brc
¿Puede por favor también elaborar el término referencias que se utilizan? Qué significa eso? –