Ниже приведен фрагмент из книги C Программирование Просто ответы на часто задаваемые вопросы. Разве это не так, поскольку массивы никогда не могут быть переданы по ссылке?
VIII.6: Как вы можете передать массив функции по значению?
Ответ: Массив может быть передан функции по значению, объявив в вызываемая функция - имя массива с квадратными скобками (
[
и]
) прилагается к концу. При вызове функции, просто передайте адрес массив (то есть имя массива) к вызываемой функции. Например, следующая программа передает массивx[]
к функции, названнойbyval_func()
по значению:Параметр
int[]
указывает компилятор, чтоbyval_func()
функция будет принимать один аргумент - массив целых чисел. Когда Вызывается функцияbyval_func()
, вы передать адрес массива вbyval_func()
:byval_func(x);
Поскольку массив передается значение, точная копия массива сделанные и помещенные в стек. вызываемая функция затем получает это копию массива и печать. Поскольку массив передан
byval_func()
- это копия исходный массив, изменяющий массив в функцииbyval_func()
имеет не влияет на исходный массив.