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

В този урок ще научим как да предаваме едномерен и многомерен масив като параметър на функцията в 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

Тук,

  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).

Също така можем да предадем масиви с повече от 2 измерения като аргумент на функция.

C ++ Връщане на масив от функция

Също така можем да върнем масив от функцията. Действителният масив обаче не се връща. Вместо това адресът на първия елемент от масива се връща с помощта на указатели.

Ще научим за връщането на масиви от функция в следващите уроци.

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