В Microsoft C ++, я сделал эксперимент с подставляемыми функциями. Я хотел знать то, что произошло бы, если бы я определил несовместимые версии функции в других источниках. Я получил различные результаты в зависимости от того, использовал ли я Отладочную сборку или Сборку конечных версий. В Отладке компилятор отказывается встраивать что-нибудь, и компоновщик связывал ту же версию функции, неважно, что было в объеме в источнике. В Выпуске компилятор встроил, какой бы ни версия была определена в то время, и Вы получили отличающиеся версии функции.
Ни в том, ни в другом случае были там любые предупреждения. Я отчасти подозревал это, которое является, почему я сделал эксперимент.
я предполагаю, что шаблонные функции вели бы себя то же, как будет другие компиляторы.
Из этих вариантов очевидным ответом будет C.
Остальные варианты (кроме A) может использоваться для этого , в зависимости от кода в круглых скобках, но вопрос НЕ показывает этот код. Значит, это должен быть С.
Вы можете выполнять итерацию и изменять каждый элемент массива с помощью любой из показанных конструкций. Но некоторые примечания по этому поводу:
b) Полезен только в том случае, если массив является числовым массивом с ключами от 0 до n-1.
c) Полезен для обоих типов массивов. Дополнительно $ value
является ссылкой на значение элемента. Таким образом, изменение $ value
внутри foreach
также изменит исходное значение.
d) Аналогично c), за исключением того, что $ value
является копией значения (обратите внимание, что foreach
работает с копией $ array
). Но с помощью ключа элемента вы можете получить доступ и изменить исходное значение с помощью $ array [$ key]
.
e) Как d). Используйте $ array [$ key]
для доступа и изменения исходного элемента.