Вы должны перебрать все элементы. Вы можете использовать onclick
следующим образом:
let elements = document.querySelectorAll('div');
for (var x = 0; x < elements.length; x++) {
elements[x].onclick = function(){
this.style.fontSize = "20px";
}
};
test
test
test
Пожалуйста, смотрите [ 114] addEventListener против onclick для различий.
Сам массив будет на стеке. Будет немного кода записи в функцию, которая копирует значения, которые хранятся в некотором массиве без имени в глобальной области / области статического ЗУ в локальный массив на стеке. Вероятно, что глобальный/статичный массив без имени с начальными значениями находится в той же общей области памяти как строковые литералы.
Отметьте однако, что ни одно из этого не требуется стандартом - но это в значительной степени, как любой компилятор реализует его. Достаточно умный компилятор мог бы заметить, что значения являются просто увеличенными целочисленными значениями и могли бы получить сведения о цикле к init локальный массив,
(этот ответ принимает C/C++ - я не знаю, изменил ли Objective C какое-либо из этого).
Как Micheal сказал, где значения списка инициализатора будут сохранены, зависит от компилятора и уровней оптимизации. Например, gcc без оптимизации просто сгенерирует код для перемещения констант в соответствующие местоположения в массиве, т.е. фактические значения будут только сохранены в самом коде. Можно легко проверить то, что произойдет, если Вы не скомпилируете в объектный код, но позволите своему ассемблеру выхода компилятора вместо этого.