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