C ++ Overføring av matriser som funksjonsparametere (med eksempler)

I denne opplæringen vil vi lære å overføre en enkeltdimensjonal og flerdimensjonal matrise som en funksjonsparameter i C ++ ved hjelp av eksempler.

I C ++ kan vi overføre matriser som et argument til en funksjon. Og vi kan også returnere matriser fra en funksjon.

Før du lærer om å sende matriser som et funksjonsargument, må du sørge for at du vet om C ++ Arrays og C ++ Funksjoner.

Syntaks for å sende matriser som funksjonsparametere

Syntaksen for å overføre en matrise til en funksjon er:

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

La oss se et eksempel,

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

Her har vi sendt en inttypematrise med navn mark til funksjonen total(). Størrelsen på matrisen er 5.

Eksempel 1: Overføring av endimensjonal matrise til en funksjon

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

Produksjon

 Viser karakterer: Student 1: 88 Student 2: 76 Student 3: 90 Student 4: 61 Student 5: 69

Her,

  1. Når vi kaller en funksjon ved å sende en matrise som argument, brukes bare navnet på matrisen.
     display(marks);
    Her representerer argumentmerket minneadressen til det første elementet i matrixmerker (5).
  2. Legg imidlertid merke til parameteren til display()funksjonen.
     void display(int m(5))
    Her bruker vi den fullstendige erklæringen til matrisen i funksjonsparameteren, inkludert firkantede klammeparenteser ().
  3. Funksjonsparameteren int m(5)konverteres til int* m;. Dette peker til samme adresse som matrisemarkeringene peker på. Dette betyr at når vi manipulerer m (5) i funksjonslegemet, manipulerer vi faktisk de opprinnelige matrisemarkeringene.
    C ++ håndterer overføring av en matrise til en funksjon på denne måten for å spare minne og tid.

Overføring av flerdimensjonal matrise til en funksjon

Vi kan også overføre flerdimensjonale matriser som et argument til funksjonen. For eksempel,

Eksempel 2: Overføring av flerdimensjonal matrise til en funksjon

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

Produksjon

 Visningsverdier: 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 programmet ovenfor har vi definert en funksjon som heter display(). Funksjonen tar et todimensjonalt array int n()(2)som argument og skriver ut elementene i arrayet.

Mens vi kaller funksjonen, sender vi bare navnet på den todimensjonale matrisen som funksjonsargument display(num).

Merk : Det er ikke obligatorisk å spesifisere antall rader i matrisen. Antall kolonner bør imidlertid alltid spesifiseres. Dette er grunnen til at vi har brukt int n()(2).

Vi kan også passere matriser med mer enn 2 dimensjoner som et funksjonsargument.

C ++ Returnere en matrise fra en funksjon

Vi kan også returnere en matrise fra funksjonen. Den faktiske matrisen returneres imidlertid ikke. I stedet returneres adressen til det første elementet i matrisen ved hjelp av pekere.

Vi vil lære om retur av matriser fra en funksjon i de kommende opplæringene.

Interessante artikler...