C ++ Arrays doorgeven als functieparameters (met voorbeelden)

In deze tutorial zullen we met behulp van voorbeelden leren hoe we een eendimensionale en multidimensionale array kunnen doorgeven als functieparameter in C ++.

In C ++ kunnen we arrays als argument doorgeven aan een functie. En we kunnen ook arrays van een functie retourneren.

Voordat u leert over het doorgeven van arrays als een functieargument, moet u de C ++ Arrays en C ++ Functions kennen.

Syntaxis voor het doorgeven van arrays als functieparameters

De syntaxis voor het doorgeven van een array aan een functie is:

 returnType functionName(dataType arrayName(arraySize)) ( // code )

Laten we een voorbeeld bekijken,

 int total(int marks(5)) ( // code )

Hier hebben we een inttypematrix met de naam marks doorgegeven aan de functie total(). De grootte van de array is 5.

Voorbeeld 1: eendimensionale matrix doorgeven aan een functie

 // 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; )

Uitvoer

 Cijfers weergeven: Student 1: 88 Student 2: 76 Student 3:90 Student 4:61 Student 5:69

Hier,

  1. Als we een functie aanroepen door een array als argument door te geven, wordt alleen de naam van de array gebruikt.
     display(marks);
    Hier vertegenwoordigen de argumentmarkeringen het geheugenadres van het eerste element van array-markeringen (5).
  2. Let echter op de parameter van de display()functie.
     void display(int m(5))
    Hier gebruiken we de volledige declaratie van de array in de functieparameter, inclusief de vierkante haakjes ().
  3. De functieparameter wordt int m(5)geconverteerd naar int* m;. Dit verwijst naar hetzelfde adres dat wordt aangegeven door de array-markeringen. Dit betekent dat wanneer we m (5) in de hoofdtekst van de functie manipuleren, we in feite de originele arraymarkeringen manipuleren.
    C ++ verwerkt het doorgeven van een array aan een functie op deze manier om geheugen en tijd te besparen.

Multidimensionale matrix doorgeven aan een functie

We kunnen ook Multidimensionale arrays als argument aan de functie doorgeven. Bijvoorbeeld,

Voorbeeld 2: multidimensionale array aan een functie doorgeven

 // 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; ) 

Uitvoer

 Weergavewaarden: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

In het bovenstaande programma hebben we een functie gedefinieerd met de naam display(). De functie neemt een tweedimensionale array int n()(2)als argument en drukt de elementen van de array af.

Bij het aanroepen van de functie geven we alleen de naam van de tweedimensionale array door als functieargument display(num).

Opmerking : het is niet verplicht om het aantal rijen in de array op te geven. Het aantal kolommen moet echter altijd worden opgegeven. Dit is waarom we hebben gebruikt int n()(2).

We kunnen ook arrays met meer dan 2 dimensies doorgeven als een functieargument.

C ++ Een array uit een functie retourneren

We kunnen ook een array uit de functie retourneren. De werkelijke array wordt echter niet geretourneerd. In plaats daarvan wordt het adres van het eerste element van de array geretourneerd met behulp van pointers.

We zullen in de komende tutorials leren over het retourneren van arrays van een functie.

Interessante artikelen...