C ++ prosljeđivanje nizova kao parametara funkcije (s primjerima)

U ovom uputstvu naučit ćemo kako uz pomoć primjera proslijediti jednodimenzionalni i višedimenzionalni niz kao funkcijski parametar u C ++.

U C ++-u možemo funkciji proslijediti nizove kao argument. Također, možemo vratiti nizove iz funkcije.

Prije nego što naučite o prosljeđivanju nizova kao argumenta funkcije, provjerite znate li nizove C ++ i funkcije C ++.

Sintaksa za prosljeđivanje nizova kao parametara funkcije

Sintaksa za prosljeđivanje niza funkciji je:

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

Pogledajmo primjer,

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

Ovdje smo intfunkciji proslijedili tipski niz s oznakama total(). Veličina polja je 5.

Primjer 1: Prosljeđivanje jednodimenzionalnog niza 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; )

Izlaz

 Prikazivanje ocjena: Student 1: 88 Student 2: 76 Student 3: 90 Student 4: 61 Student 5: 69

Ovdje,

  1. Kada funkciju pozivamo tako da prosljeđujemo niz kao argument, koristi se samo ime niza.
     display(marks);
    Ovdje argumenti predstavljaju memorijsku adresu prvog elementa oznaka niza (5).
  2. Međutim, primijetite parametar display()funkcije.
     void display(int m(5))
    Ovdje koristimo potpunu deklaraciju niza u parametru funkcije, uključujući kvadratne zagrade ().
  3. Parametar funkcije int m(5)pretvara u int* m;. To upućuje na istu adresu na koju ukazuju oznake niza. To znači da kada manipuliramo m (5) u tijelu funkcije, zapravo manipuliramo izvornim oznakama niza.
    C ++ na taj način obrađuje prosljeđivanje niza funkciji radi uštede memorije i vremena.

Prosljeđivanje višedimenzionalnog niza funkciji

Također možemo proslijediti višedimenzionalne nizove kao argument funkciji. Na primjer,

Primjer 2: Prosljeđivanje višedimenzionalnog niza 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; ) 

Izlaz

 Prikazivanje vrijednosti: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

U gornjem programu definirali smo funkciju imenovanu display(). Funkcija uzima dvodimenzionalni niz int n()(2)kao svoj argument i ispisuje elemente niza.

Dok pozivamo funkciju, kao argument funkcije prosljeđujemo samo ime dvodimenzionalnog niza display(num).

Napomena : Nije obvezno navesti broj redaka u polju. Međutim, uvijek treba navesti broj stupaca. Zbog toga smo koristili int n()(2).

Također možemo proslijediti nizove s više od 2 dimenzije kao argument funkcije.

C ++ Vraćanje niza iz funkcije

Iz funkcije također možemo vratiti niz. Međutim, stvarni niz se ne vraća. Umjesto toga, adresa prvog elementa niza vraća se uz pomoć pokazivača.

O vraćanju nizova iz funkcije naučit ćemo u sljedećim vodičima.

Zanimljivi članci...