În acest tutorial, vom învăța cum să treceți o matrice unidimensională și multidimensională ca parametru funcțional în C ++ cu ajutorul exemplelor.
În C ++, putem transmite matrici ca argument către o funcție. Și, de asemenea, putem returna matrici dintr-o funcție.
Înainte de a afla despre trecerea matricelor ca argument de funcție, asigurați-vă că știți despre matricele C ++ și funcțiile C ++.
Sintaxa pentru trecerea matricelor ca parametri de funcție
Sintaxa pentru trecerea unui tablou către o funcție este:
returnType functionName(dataType arrayName(arraySize)) ( // code )
Să vedem un exemplu,
int total(int marks(5)) ( // code )
Aici, am trecut o int
matrice de tipuri numită mărci funcției total()
. Dimensiunea matricei este de 5.
Exemplul 1: Transmiterea matricii unidimensionale către o funcție
// 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; )
Ieșire
Afișarea notelor: Student 1: 88 Student 2: 76 Student 3: 90 Student 4: 61 Student 5: 69
Aici,
- Când apelăm o funcție trecând o matrice ca argument, se folosește doar numele matricei.
display(marks);
- Cu toate acestea, observați parametrul
display()
funcției.void display(int m(5))
()
. - Parametrul funcției se
int m(5)
convertește înint* m;
. Aceasta indică aceeași adresă indicată de mărcile matricei. Aceasta înseamnă că atunci când manipulăm m (5) în corpul funcției, manipulăm de fapt mărcile matricei originale.
C ++ gestionează trecerea unui tablou către o funcție în acest mod pentru a economisi memorie și timp.
Transmiterea matricei multidimensionale către o funcție
De asemenea, putem transmite tablouri multidimensionale ca argument pentru funcție. De exemplu,
Exemplul 2: Transmiterea matricei multidimensionale către o funcție
// 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; )
Ieșire
Afișare valori: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1
În programul de mai sus, am definit o funcție numită display()
. Funcția ia o matrice bidimensională, int n()(2)
ca argument și imprimă elementele matricei.
În timp ce apelăm funcția, trecem doar numele matricei bidimensionale ca argument al funcției display(num)
.
Notă : Nu este obligatoriu să specificați numărul de rânduri din matrice. Cu toate acestea, numărul de coloane trebuie întotdeauna specificat. Acesta este motivul pentru care am folosit int n()(2)
.
De asemenea, putem transmite matrici cu mai mult de 2 dimensiuni ca argument funcțional.
C ++ Returnarea unei matrice dintr-o funcție
De asemenea, putem returna o matrice din funcție. Cu toate acestea, matricea reală nu este returnată. În schimb, adresa primului element al matricei este returnată cu ajutorul indicatorilor.
Vom afla despre returnarea matricelor dintr-o funcție în tutorialele următoare.