Posredovanje nizov C ++ kot funkcijskih parametrov (z primeri)

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 intfunkciji 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,

  1. Ko funkcijo pokličemo tako, da kot argument posredujemo matriko, se uporablja samo ime matrike.
     display(marks);
    Tu argumenti predstavljajo pomnilniški naslov prvega elementa matrike (5).
  2. Upoštevajte pa parameter display()funkcije.
     void display(int m(5))
    Tu uporabimo celotno izjavo matrike v funkcijskem parametru, vključno s kvadratnimi oklepaji ().
  3. Parameter funkcije int m(5)pretvori v int* 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.

Zanimive Članki...