Š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 int
tipo 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
- Kai iškviečiame funkciją perduodant masyvą kaip argumentą, naudojamas tik masyvo pavadinimas.
display(marks);
- Tačiau atkreipkite dėmesį į
display()
funkcijos parametrą .void display(int m(5))
()
. - 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.