Временная локализация: что происходит за короткий промежуток времени? Если это так, они имеют временную локализацию. Если нет, то нет.
Пространственная локализация: находятся ли вещи близко друг к другу в пространстве (то есть в памяти)? Если это так, они имеют пространственную локализацию. Если нет, то нет.
Обратите внимание, что при использовании этих терминов вам необходимо указать, что является локальным для чего; в изоляции они мало что значат.
Элементы arr
будут (предполагая обычно подразумеваемую реализацию «массива», то есть элементов данных, размещенных в непрерывном блоке), иметь пространственную локальность по отношению друг к другу. Вы не знаете (по крайней мере из всего, что указано в вопросе), где i
будет располагаться относительно arr
, поэтому вы не можете сказать, демонстрируют ли эти объекты пространственную локальность по отношению друг к другу или нет.
Операторы, обращающиеся к i
и arr[i]
, происходят один за другим, поэтому они демонстрируют временную локальность, предполагая, что работа, которую вы выполняете над каждым элементом массива, обходится дешево; с этим допущением, ссылки на различные элементы arr
в последующих итерациях также будут демонстрировать временную локальность. Однако, если для каждой итерации цикла вы вызываете какую-то функцию, которая занимает много времени между доступом к i
и arr
, то больше не будет правдой, что эти обращения демонстрируют временную локальность.