Předávací pole C ++ jako funkční parametry (s příklady)

V tomto kurzu se naučíme, jak předat jednorozměrné a vícerozměrné pole jako parametr funkce v C ++ pomocí příkladů.

V C ++ můžeme předat pole jako argument funkci. A také můžeme vrátit pole z funkce.

Než se dozvíte o předávání polí jako argumentu funkce, ujistěte se, že víte o polích C ++ a funkcích C ++.

Syntaxe pro předávání polí jako funkčních parametrů

Syntaxe pro předání pole funkci je:

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

Podívejme se na příklad,

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

Tady jsme funkci předali intpole typu pojmenované značky total(). Velikost pole je 5.

Příklad 1: Předání jednorozměrného pole do funkce

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

Výstup

 Zobrazované známky: Student 1: 88 Student 2: 76 Student 3: 90 Student 4: 61 Student 5: 69

Tady,

  1. Když zavoláme funkci předáním pole jako argumentu, použije se pouze název pole.
     display(marks);
    Značky argumentů zde představují adresu paměti prvního prvku značek pole (5).
  2. Všimněte si však parametru display()funkce.
     void display(int m(5))
    Zde používáme úplnou deklaraci pole v parametru funkce, včetně hranatých závorek ().
  3. Funkční parametr se int m(5)převede na int* m;. To ukazuje na stejnou adresu označenou značkami pole. To znamená, že když manipulujeme s m (5) v těle funkce, vlastně manipulujeme s původními značkami pole.
    C ++ zpracovává předávání pole funkci tímto způsobem, aby ušetřil paměť a čas.

Předání vícerozměrného pole do funkce

Multidimenzionální pole můžeme také předat funkci jako argument. Například,

Příklad 2: Předání vícerozměrného pole do funkce

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

Výstup

 Zobrazované hodnoty: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

Ve výše uvedeném programu jsme definovali funkci s názvem display(). Funkce vezme dvourozměrné pole int n()(2)jako svůj argument a vytiskne prvky pole.

Při volání funkce předáváme jako argument funkce pouze název dvourozměrného pole display(num).

Poznámka : Není povinné uvádět počet řádků v poli. Počet sloupců by však měl být vždy uveden. Proto jsme použili int n()(2).

Můžeme také předat pole s více než 2 rozměry jako argument funkce.

C ++ vrací pole z funkce

Můžeme také vrátit pole z funkce. Skutečné pole však není vráceno. Místo toho je adresa prvního prvku pole vrácena pomocí ukazatelů.

O vracejících se polích z funkce se naučíme v následujících výukách.

Zajímavé články...