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 int
type 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,
- Når vi kalder en funktion ved at sende en matrix som argumentet, bruges kun navnet på matrixen.
display(marks);
- Bemærk dog funktionens parameter
display()
.void display(int m(5))
()
. - Funktionsparameteren
int m(5)
konverteres tilint* 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.