В този урок ще научим как да предаваме едномерен и многомерен масив като параметър на функцията в C ++ с помощта на примери.
В C ++ можем да предаваме масиви като аргумент на функция. И също така можем да върнем масиви от функция.
Преди да научите за предаването на масиви като аргумент на функция, уверете се, че знаете за масивите C ++ и функциите C ++.
Синтаксис за предаване на масиви като функционални параметри
Синтаксисът за предаване на масив към функция е:
returnType functionName(dataType arrayName(arraySize)) ( // code )
Нека да видим пример,
int total(int marks(5)) ( // code )
Тук сме предали int
масив от тип с имена на функцията 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
Тук,
- Когато извикаме функция чрез предаване на масив като аргумент, се използва само името на масива.
display(marks);
- Обърнете внимание обаче на параметъра на
display()
функцията.void display(int m(5))
()
. - Параметърът на функцията се
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)
.
Също така можем да предадем масиви с повече от 2 измерения като аргумент на функция.
C ++ Връщане на масив от функция
Също така можем да върнем масив от функцията. Действителният масив обаче не се връща. Вместо това адресът на първия елемент от масива се връща с помощта на указатели.
Ще научим за връщането на масиви от функция в следващите уроци.