C ++ Passing Matrici ca parametri de funcție (cu exemple)

Î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 intmatrice 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,

  1. Când apelăm o funcție trecând o matrice ca argument, se folosește doar numele matricei.
     display(marks);
    Aici, mărcile argumentelor reprezintă adresa de memorie a primului element al mărcilor matrice (5).
  2. Cu toate acestea, observați parametrul display()funcției.
     void display(int m(5))
    Aici, folosim declarația completă a matricei în parametrul funcției, inclusiv acoladele pătrate ().
  3. Parametrul funcției se int m(5)convertește în int* 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.

Articole interesante...