C ++ Передача массивов как параметров функции (с примерами)

В этом руководстве мы узнаем, как передать одномерный и многомерный массив в качестве параметра функции в C ++ с помощью примеров.

В C ++ мы можем передавать массивы в качестве аргумента функции. А также мы можем возвращать массивы из функции.

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

Синтаксис для передачи массивов как параметров функции

Синтаксис передачи массива в функцию:

 returnType functionName(dataType arrayName(arraySize)) ( // code )

Давайте посмотрим на пример,

 int total(int marks(5)) ( // code )

Здесь мы передали функции intмассив типов с именем mark total(). Размер массива 5.

Пример 1: передача одномерного массива функции

 // C++ Program to display marks of 5 students #include using namespace std; // declare function to display marks // take a 1d array as parameter void display(int m(5)) ( cout << "Displaying marks: " << endl; // display array elements for (int i = 0; i < 5; ++i) ( cout << "Student " << i + 1 << ": " << m(i) << endl; ) ) int main() ( // declare and initialize an array int marks(5) = (88, 76, 90, 61, 69); // call display function // pass array as argument display(marks); return 0; )

Вывод

 Отображение оценок: Студент 1:88 Студент 2:76 Студент 3:90 Студент 4:61 Студент 5:69

Вот,

  1. Когда мы вызываем функцию, передавая массив в качестве аргумента, используется только имя массива.
     display(marks);
    Здесь метки аргументов представляют адрес памяти первого элемента массива меток (5).
  2. Однако обратите внимание на параметр display()функции.
     void display(int m(5))
    Здесь мы используем полное объявление массива в параметре функции, включая квадратные скобки ().
  3. Параметр функции int m(5)преобразуется в int* m;. Это указывает на тот же адрес, указанный метками массива. Это означает, что когда мы манипулируем m (5) в теле функции, мы фактически манипулируем исходными метками массива.
    C ++ обрабатывает передачу массива в функцию таким образом, чтобы сэкономить память и время.

Передача многомерного массива функции

Мы также можем передавать многомерные массивы в качестве аргумента функции. Например,

Пример 2: Передача многомерного массива функции

 // C++ Program to display the elements of two // dimensional array by passing it to a function #include using namespace std; // define a function // pass a 2d array as a parameter void display(int n()(2)) ( cout << "Displaying Values: " << endl; for (int i = 0; i < 3; ++i) ( for (int j = 0; j < 2; ++j) ( cout << "num(" << i << ")(" << j << "): " << n(i)(j) << endl; ) ) ) int main() ( // initialize 2d array int num(3)(2) = ( (3, 4), (9, 5), (7, 1) ); // call the function // pass a 2d array as an argument display(num); return 0; ) 

Вывод

 Отображаемые значения: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

В приведенной выше программе мы определили функцию с именем display(). Функция принимает двумерный массив в int n()(2)качестве аргумента и печатает элементы массива.

При вызове функции мы передаем только имя двумерного массива в качестве аргумента функции display(num).

Примечание : указывать количество строк в массиве не обязательно. Однако всегда следует указывать количество столбцов. Вот почему мы использовали int n()(2).

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

C ++ Возврат массива из функции

Мы также можем вернуть массив из функции. Однако фактический массив не возвращается. Вместо этого адрес первого элемента массива возвращается с помощью указателей.

Мы узнаем о возврате массивов из функции в следующих руководствах.

Интересные статьи...