C ++ perdavimo masyvai kaip funkcijos parametrai (su pavyzdžiais)

Šioje pamokoje sužinosime, kaip pavyzdžių pagalba perduoti vienmatį ir daugiamatį masyvą kaip funkcijos parametrą C ++.

C ++ sistemoje galime perduoti masyvus kaip argumentą funkcijai. Taip pat galime grąžinti masyvus iš funkcijos.

Prieš sužinodami apie masyvų perdavimą kaip funkcijos argumentą, įsitikinkite, kad žinote apie C ++ masyvus ir C ++ funkcijas.

Masyvų kaip funkcijų parametrų sintaksė

Masyvo perdavimo funkcijai sintaksė yra:

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

Pažiūrėkime pavyzdį,

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

Čia funkcijai perdavėme inttipo masyvą, pavadintą ženklais total(). Masyvo dydis yra 5.

1 pavyzdys: Vienos dimensijos masyvo perdavimas funkcijai

 // 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; )

Rezultatas

 Rodomi ženklai: Studentas 1: 88 Studentas 2: 76 Studentas 3: 90 Studentas 4: 61 Studentas 5: 69

Čia

  1. Kai iškviečiame funkciją perduodant masyvą kaip argumentą, naudojamas tik masyvo pavadinimas.
     display(marks);
    Čia argumentų ženklai žymi pirmojo masyvo ženklų elemento atminties adresą (5).
  2. Tačiau atkreipkite dėmesį į display()funkcijos parametrą .
     void display(int m(5))
    Čia mes naudojame visą masyvo deklaraciją funkcijos parametre, įskaitant kvadratines petnešas ().
  3. Funkcijos parametras int m(5)konvertuojamas į int* m;. Tai rodo tą patį adresą, kurį nurodo masyvo ženklai. Tai reiškia, kad kai manipuliuojame m (5) funkcijos kūne, mes iš tikrųjų manipuliuojame originaliais masyvo ženklais.
    C ++ tvarko masyvo perdavimą funkcijai tokiu būdu, kad sutaupytų atminties ir laiko.

Daugialypio masyvo perdavimas funkcijai

Mes taip pat galime perduoti daugialypius masyvus kaip argumentą funkcijai. Pavyzdžiui,

2 pavyzdys: Daugialypio masyvo perdavimas funkcijai

 // 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; ) 

Rezultatas

 Rodomos vertės: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

Pirmiau pateiktoje programoje mes apibrėžėme funkciją, pavadintą display(). Funkcija užima dviejų matmenų masyvą int n()(2)kaip argumentą ir atspausdina masyvo elementus.

Skambindami funkcija, mes perduodame tik dviejų matmenų masyvo pavadinimą kaip funkcijos argumentą display(num).

Pastaba : masyvo eilučių skaičiaus nurodyti nėra privaloma. Tačiau visada reikia nurodyti stulpelių skaičių. Štai kodėl mes naudojome int n()(2).

Mes taip pat galime perduoti masyvus su daugiau nei 2 matmenimis kaip funkcijos argumentą.

C ++ masyvo grąžinimas iš funkcijos

Taip pat galime grąžinti masyvą iš funkcijos. Tačiau tikrasis masyvas negrąžinamas. Vietoj rodyklių grąžinamas pirmojo masyvo elemento adresas.

Apie masyvų grąžinimą iš funkcijos sužinosime ateinančiose pamokose.

Įdomios straipsniai...