V tej vadnici bomo izvedeli, kako s pomočjo primerov v C ++ prenesti enodimenzionalno in večdimenzionalno matriko kot funkcijski parameter.
V jeziku C ++ lahko funkcije posredujemo polja kot argument. In tudi lahko vrnemo polja iz funkcije.
Preden se naučite posredovanja nizov kot argumenta funkcije, se prepričajte, da poznate polja C ++ in funkcije C ++.
Sintaksa za predajo nizov kot funkcijskih parametrov
Sintaksa za posredovanje polja funkciji je:
returnType functionName(dataType arrayName(arraySize)) ( // code )
Poglejmo primer,
int total(int marks(5)) ( // code )
Tu smo int
funkciji poslali matriko z imenom z oznakami total()
. Velikost matrike je 5.
Primer 1: Posredovanje enodimenzionalnega polja funkciji
// 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; )
Izhod
Prikazovanje ocen: Študent 1: 88 Študent 2: 76 Študent 3: 90 Študent 4: 61 Študent 5: 69
Tukaj,
- Ko funkcijo pokličemo tako, da kot argument posredujemo matriko, se uporablja samo ime matrike.
display(marks);
- Upoštevajte pa parameter
display()
funkcije.void display(int m(5))
()
. - Parameter funkcije
int m(5)
pretvori vint* m;
. To kaže na isti naslov, ki ga kažejo oznake matrike. To pomeni, da ko manipuliramo z m (5) v telesu funkcije, dejansko manipuliramo s prvotnimi oznakami matrike.
C ++ na ta način obravnava posredovanje matrike funkciji, da prihrani pomnilnik in čas.
Prenos večdimenzionalnega polja v funkcijo
Večdimenzionalna polja lahko posredujemo tudi kot argument funkciji. Na primer
Primer 2: posredovanje večdimenzionalnega polja funkciji
// 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; )
Izhod
Prikaz vrednosti: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1
V zgornjem programu smo definirali funkcijo z imenom display()
. Funkcija vzame dvodimenzionalno polje int n()(2)
kot svoj argument in natisne elemente polja.
Med klicanjem funkcije kot argument funkcije posredujemo samo ime dvodimenzionalne matrike display(num)
.
Opomba : V matriki ni obvezno določiti števila vrstic. Vedno pa je treba določiti število stolpcev. Zato smo uporabili int n()(2)
.
Kot argument funkcije lahko posredujemo tudi nize z več kot 2 dimenzijama.
C ++ Vrnitev matrike iz funkcije
Iz funkcije lahko vrnemo tudi matriko. Vendar se dejansko polje ne vrne. Namesto tega se naslov prvega elementa polja vrne s pomočjo kazalcev.
O vračanju nizov iz funkcije bomo izvedeli v naslednjih vajah.