Arrays can be passed to a function as an argument. Read this example to pass one-dimensional array to a function:
Example 1: Passing One-dimensional Array to a Function
C++ Program to display marks of 5 students by passing one-dimensional array to a function.
#include <iostream>
using namespace std;
void display(int marks[5]);
int main() {
int marks[5] = {88, 76, 90, 61, 69};
display(marks);
return 0;
}
void display(int m[5]) {
cout<<"Displaying marks: "<<endl;
for (int i = 0; i <5; ++i) {
cout<<"Student "<<i+1<<": "<<m[i]<<endl;
}
}
Output
Displaying marks:
Student 1: 88
Student 2: 76
Student 3: 90
Student 4: 61
Student 5: 69
When an array is passed as an argument to a function, only the name of an array is used as argument.
display(marks);
Also notice the difference while passing array as an argument rather than variable.
void display(int m[5]);
The argument used marks in the above code represents the memory address of first element of array marks[5]. And the formal argument int m[5] in function declaration decays to int* m;. That's why, although the function is manipulated in the user-defined function with different array name m[5], the original array is manipulated. The C++ programming language handles passing array to a function in this way to save memory and time.
Note: You need to have understanding of pointers to understand passing array to a function. Learn more: Call by reference
Passing Multidimensional Array to a Function
Multidimensional array can be passed in similar way as one-dimensional array. Consider this example to pass two dimensional array to a function:
Example 2: Passing Multidimensional Array to a Function
C++ Program to display the elements of two dimensional array by passing it to a function.
#include <iostream>
using namespace std;
void display(int n[3][2]);
int main() {
int num[3][2] = {
{3, 4},
{9, 5},
{7, 1}
};
display(num);
return 0;
}
void display(int n[3][2]) {
cout<<"Displaying Values: "<<endl;
for(int i = 0; i < 3; ++ i) {
for(int j = 0; j < 2; ++j) {
cout<<n[i][j]<<" ";
}
}
}
Output
Displaying Values:
3 4 9 5 7 1
Multidimensional array with dimension more than 2 can be passed in similar way as two dimensional array.