C ++ skicka matriser som funktionsparametrar (med exempel)

I den här handledningen lär vi oss hur man skickar en endimensionell och flerdimensionell matris som en funktionsparameter i C ++ med hjälp av exempel.

I C ++ kan vi skicka matriser som ett argument till en funktion. Och vi kan också returnera matriser från en funktion.

Innan du lär dig om att skicka arrayer som ett funktionsargument, se till att du känner till C ++ Arrays och C ++ -funktioner.

Syntax för att skicka arrayer som funktionsparametrar

Syntaxen för att skicka en matris till en funktion är:

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

Låt oss se ett exempel,

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

Här har vi skickat en inttypmatris med namnet markeringar till funktionen total(). Storleken på matrisen är 5.

Exempel 1: Förmedla endimensionell matris till en funktion

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

Produktion

 Visar betyg: Student 1: 88 Student 2: 76 Student 3: 90 Student 4: 61 Student 5: 69

Här,

  1. När vi anropar en funktion genom att skicka en matris som argument används endast namnet på matrisen.
     display(marks);
    Här representerar argumentmärkena minnesadressen för det första elementet i arraymarkeringar (5).
  2. Lägg dock märke till display()funktionens parameter .
     void display(int m(5))
    Här använder vi hela deklarationen för matrisen i funktionsparametern, inklusive fyrkantiga hakparenteser ().
  3. Funktionsparametern int m(5)konverteras till int* m;. Detta pekar på samma adress som matrismarkeringarna pekar på. Detta betyder att när vi manipulerar m (5) i funktionskroppen, manipulerar vi faktiskt de ursprungliga matrismarkeringarna.
    C ++ hanterar överföring av en matris till en funktion på detta sätt för att spara minne och tid.

Förmedla flerdimensionell matris till en funktion

Vi kan också skicka flerdimensionella matriser som ett argument till funktionen. Till exempel,

Exempel 2: Överföring av flerdimensionell matris till en funktion

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

Produktion

 Visar värden: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

I ovanstående program har vi definierat en funktion som heter display(). Funktionen tar en tvådimensionell matris int n()(2)som argument och skriver ut elementen i matrisen.

När vi anropar funktionen skickar vi bara namnet på den tvådimensionella matrisen som funktionsargument display(num).

Obs! Det är inte obligatoriskt att ange antalet rader i matrisen. Antalet kolumner ska dock alltid anges. Det är därför vi har använt int n()(2).

Vi kan också skicka matriser med mer än två dimensioner som ett funktionsargument.

C ++ Returnera en matris från en funktion

Vi kan också returnera en matris från funktionen. Den faktiska matrisen returneras dock inte. Istället returneras adressen till det första elementet i matrisen med hjälp av pekare.

Vi kommer att lära oss att returnera matriser från en funktion i de kommande handledningarna.

Intressanta artiklar...