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