Передача массива функции C ++

Passing An Array Function C



Массив - это группа элементов одного типа данных. Многие функции выполняются над массивами либо в основной программе, либо вне ее, в функциях. В C ++ в случае функций нам нужно их передавать. Это делается с помощью параметров в качестве аргументов. Эти аргументы могут быть разными: массивы большого размера или массив указателей. В этом руководстве мы рассмотрим некоторые основные аспекты передачи массива с использованием различных параметров функций.

Синтаксис

[Возвращениетип] [названиефункция] (данныетипимя[множестворазмер])

{

функциятело

}

Пример 1

Рассмотрим пример, в котором нам нужно распечатать оценки студентов в программе на C ++. Этот отпечаток будет взят в отдельной функции, а не в основной программе. Напротив, мы будем принимать входные данные в основной программе и передавать эти значения в функцию в качестве параметра. Рассмотрим функцию. В его параметре есть переменная типа данных массива, которая будет принимать значения массива. Здесь объявлен полный массив. Отметки будут отображаться с помощью цикла for. Как и в случае с массивами, нам нужны циклы для получения с них печати.









Переходя к функции main, мы объявляем массив с его размером и значениями в нем. Поскольку мы должны вызвать функцию. Таким образом, метод состоит в том, что мы записываем имя функции с именем массива в параметре в качестве аргумента. Мы не определили размер массива.



Отображать(Метки);

Аргумент в параметре подразумевает адрес памяти массива. В параметре заголовка функции int m [7] преобразуется в int * m. Это включает тот же адрес, что и исходный массив. Когда мы используем m [5] в теле функции, мы собираемся манипулировать исходным массивом.





Отображение пустоты(int m[7] )

В операционной системе Linux для получения вывода через терминал требуется установка некоторых предварительных условий. Ему нужен компилятор для компиляции и последующего выполнения кода в терминале командной строки. G ++ используется в C ++ для компиляции.



$g ++ -илиcode3 code3.c

$./code3

Где –o используется для сохранения вывода из исходного файла в выходной файл.

Из выходных данных вы можете заметить, что все числа, инициированные в массиве в основной функции, передаются и отображаются через функцию отображения.

Пример 2

Другой пример передачи массива через параметр - передача многомерного массива функции. Здесь используется двумерный массив (2d). В основной функции нам нужно инициализировать массив.

Int массив[ряд][столбец]

Инициализация 2-го массива включает строку и столбец. И их порядок должен сохраняться на протяжении всей программы. 2-й массив инициализируется двумя числами в скобках. Как мы описали в инициализации 2 столбца.

Отображать(на одной);

Мы будем использовать только имя массива в параметре в качестве аргумента.

Теперь посмотрим, как работает функция отображения. При запуске функции требуется переменная массива, чтобы принять массив, переданный вызовом функции через основную программу.

Отображение пустоты(int n[][2] )

Обязательно указать количество столбцов. Для сравнения, в случае рядов это несущественно. Вот почему мы оставили здесь скобки строк пустыми, так как мы используем цикл for для отображения результатов. Но в случае двумерного массива мы используем вложенный цикл for. Он содержит два оператора for с двумя переменными в них.

Мы можем просмотреть вывод, используя тот же компилятор. Вы можете увидеть результаты, что каждое значение отображается отдельно с номером строки и столбца.

Пример 3

Этот пример немного отличается от предыдущих. В этом примере мы упоминаем размер массива в параметре вызова функции. И в объявлении функции также вводится переменная, принимающая размер массива.

Начиная с основной программы, массив инициализируется значениями.

avg = getAverage(остаток средств,5);

Результат будет сохранен в переменной avg. Вместо того, чтобы передавать только имя массива, к параметру также добавляется размер массива.

Параметр также содержит переменную типа массива и целочисленный тип данных для получения размера массива. Тип основной программы - int, потому что она получит целочисленное значение от функции. В противном случае в остальных случаях он недействителен.

Теперь посмотрим на результат. Это значение видно на изображении, полученном из функции.

Пример 4

Этот пример относится к определению максимального числа в массиве, по сути, из двух массивов. Здесь мы инициализируем два массива в основной программе. Оба массива отдельно передаются в функцию в отдельных вызовах функции.

printMax(arr1);

printMax(arr2);

где printMax - это имя функции, а arr - это массив. Результат не возвращается из функции и отображается там. Цикл For вычислит максимальное число в обоих массивах. Оператор if используется внутри цикла for. Заголовок функции:

void printMax(int arr[5])

Поскольку оба массива содержат разные значения, оба результата будут разными.

Пример 5

Этот пример представляет собой сводку всех типов массивов, передаваемых через параметры. Это могут быть массивы размера, без размера или массивы указателей. Мы рассмотрим их по очереди.

В основной программе каждая функция объявляется первой. Вы можете указать разницу в их декларации.

Int sum1(int tmp[5]);

Int sum2(int tmp[]);

Int sum3(int*tmp);

Эти три массива показывают, что массивы могут передаваться с этими параметрами в функции.

После инициализации функции у нас есть основная программа, в которой объявлен массив. В отличие от предыдущего примера, инициализируется один массив вместо двух, но он передается тремя разными способами. Теперь мы увидим выполненные здесь вызовы функций.

Итого = сумма1(продажи);

Итого = сумма2(продажи);

Итого = сумма3(продажи);

Вывод отображается в основной функции, поэтому объявляется переменная, принимающая значение, возвращаемое функцией. Из всех трех вызовов функций видно, что здесь параметры одинаковые. Каждый массив содержит только имя массива. Но параметры функции, принимающей массив, другие.

Внутреннее тело всех трех функций одинаково, поскольку сумма всех чисел вычисляется с использованием цикла For. Методология и значения массива совпадают; только есть различие между параметрами функций. Следовательно, доказано, что мы можем использовать разные методы для приема массива или выполнять те же функции, и ответ один и тот же. Мы можем подтвердить это, проверив вывод. Используя ту же процедуру компиляции, мы получим результат, показанный на изображении ниже.

Вы можете видеть, что ответ одинаков для всех трех используемых функций.

Заключение

В этой статье пользователь узнает о методе передачи массива в параметрах. Массивы можно обрабатывать во многих случаях, когда дело доходит до возврата значения или передачи его в аргументах.