C ++ videregivelse af arrays som funktionsparametre (med eksempler)

I denne vejledning lærer vi, hvordan man sender et enkeltdimensionelt og flerdimensionelt array som en funktionsparameter i C ++ ved hjælp af eksempler.

I C ++ kan vi videregive arrays som et argument til en funktion. Og vi kan også returnere arrays fra en funktion.

Før du lærer om videregivelse af arrays som et funktionsargument, skal du sørge for at kende til C ++ Arrays og C ++ -funktioner.

Syntaks til videregivelse af arrays som funktionsparametre

Syntaksen for at overføre en matrix til en funktion er:

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

Lad os se et eksempel,

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

Her har vi sendt en inttype matrix navngivet markeringer til funktionen total(). Matrixens størrelse er 5.

Eksempel 1: At overføre en-dimensionel matrix til 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

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

Her,

  1. Når vi kalder en funktion ved at sende en matrix som argumentet, bruges kun navnet på matrixen.
     display(marks);
    Her repræsenterer argumentmærkerne hukommelsesadressen på det første element i array-mærker (5).
  2. Bemærk dog funktionens parameter display().
     void display(int m(5))
    Her bruger vi den fulde erklæring af arrayet i funktionsparameteren, inklusive de firkantede seler ().
  3. Funktionsparameteren int m(5)konverteres til int* m;. Dette peger på den samme adresse, som matrixmarkeringerne peger på. Dette betyder, at når vi manipulerer m (5) i funktionskroppen, manipulerer vi faktisk de originale matrixmarkeringer.
    C ++ håndterer en matrix til en funktion på denne måde for at spare hukommelse og tid.

Videregive flerdimensionel matrix til en funktion

Vi kan også videregive flerdimensionelle arrays som et argument til funktionen. For eksempel,

Eksempel 2: Overføring af flerdimensionel matrix til 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

 Visningsværdier: 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 ovenstående program har vi defineret en funktion med navnet display(). Funktionen tager et todimensionelt array int n()(2)som dets argument og udskriver elementerne i arrayet.

Når vi kalder funktionen, videregiver vi kun navnet på det todimensionale array som funktionsargumentet display(num).

Bemærk : Det er ikke obligatorisk at specificere antallet af rækker i arrayet. Antallet af kolonner skal dog altid specificeres. Det er derfor, vi har brugt int n()(2).

Vi kan også videregive arrays med mere end 2 dimensioner som et funktionsargument.

C ++ Returnering af en matrix fra en funktion

Vi kan også returnere en matrix fra funktionen. Den aktuelle matrix returneres dog ikke. I stedet returneres adressen til det første element i arrayet ved hjælp af pekere.

Vi lærer om returnering af arrays fra en funktion i de kommende selvstudier.

Interessante artikler...