Передача массива в функцию в программировании на C++
Передача массива в функцию в программировании на C++
В этом руководстве мы научимся передавать одномерный и многомерный массив в качестве параметра функции в C++ с помощью примеров.
В C++ мы можем передавать массивы в качестве аргумента функции. А также мы можем возвращать массивы из функции.
Прежде чем вы узнаете о передаче массивов в качестве аргумента функции, убедитесь, что вы знаете о массивах C++ и функциях C++.
<час>Синтаксис для передачи массивов в качестве параметров функции
Синтаксис для передачи массива в функцию:
returnType functionName(dataType arrayName[arraySize]) {
// code
}
Давайте посмотрим на пример,
int total(int marks[5]) {
// code
}
Здесь мы передали int
массив типов с именем marks к функции total()
. Размер массива 5 .
Пример 1. Передача одномерного массива в функцию
// C++ Program to display marks of 5 students
#include <iostream>
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;
}
Вывод
Displaying marks: Student 1: 88 Student 2: 76 Student 3: 90 Student 4: 61 Student 5: 69
Здесь
- Когда мы вызываем функцию, передавая массив в качестве аргумента, используется только имя массива.
display(marks);
- Однако обратите внимание на параметр
display()
функция.void display(int m[5])
[]
. - Параметр функции
int m[5]
преобразуется вint* m;
. Это указывает на тот же адрес, на который указывает массив marks . Это означает, что когда мы манипулируем m[5] в теле функции мы фактически манипулируем исходным массивом marks .
C++ обрабатывает передачу массива в функцию таким образом, чтобы сэкономить память и время.
Передача многомерного массива в функцию
Мы также можем передавать многомерные массивы в качестве аргумента функции. Например,
Пример 2. Передача многомерного массива в функцию
// C++ Program to display the elements of two
// dimensional array by passing it to a function
#include <iostream>
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;
}
Вывод
Displaying Values: 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
- Зубчатый массив С#
- Операторы С++
- Дружественные функции C++ и дружественные классы
- Операторы программирования на C
- Массивы в C++ | Объявить | Инициализировать | Указатель на примеры массивов
- C++ динамическое выделение массивов с примером
- Перегрузка оператора C++ с примерами
- Функции C++ с примерами программ
- C Учебник
- Перегрузка C++ (оператор и функция)