C ++ prechodové polia ako funkčné parametre (s príkladmi)

V tomto tutoriále sa naučíme, ako pomocou príkladov odovzdať jednorozmerné a viacrozmerné pole ako funkčný parameter v C ++.

V C ++ môžeme pole odovzdať ako argument funkcii. A tiež môžeme vrátiť polia z funkcie.

Predtým, ako sa dozviete o odovzdávaní polí ako argumentu funkcie, nezabudnite vedieť o poliach C ++ a funkciách C ++.

Syntax pre odovzdávanie polí ako funkčných parametrov

Syntax pre odovzdanie poľa funkcii je:

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

Pozrime sa na príklad,

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

Tu sme intfunkcii odovzdali typové pole s názvom značky total(). Veľkosť poľa je 5.

Príklad 1: Predanie jednorozmerného poľa funkcii

 // 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ýkon

 Zobrazené známky: Študent 1: 88 Študent 2: 76 Študent 3: 90 Študent 4: 61 Študent 5: 69

Tu,

  1. Keď zavoláme funkciu odovzdaním poľa ako argumentu, použije sa iba názov poľa.
     display(marks);
    Značky argumentov tu predstavujú adresu pamäte prvého prvku značiek poľa (5).
  2. Všimnite si však parameter display()funkcie.
     void display(int m(5))
    Tu použijeme úplnú deklaráciu poľa v parametri funkcie vrátane štvorcových zátvoriek ().
  3. Funkčný parameter sa int m(5)prevedie na int* m;. To ukazuje na rovnakú adresu, na ktorú poukazujú značky poľa. To znamená, že keď manipulujeme s m (5) v tele funkcie, vlastne manipulujeme s pôvodnými značkami poľa.
    C ++ spracováva odovzdávanie poľa funkcii týmto spôsobom, aby šetrila pamäť a čas.

Rozdelenie viacrozmerného poľa na funkciu

Multidimenzionálne polia môžeme tiež odovzdať funkcii ako argument. Napríklad,

Príklad 2: Prenesenie viacrozmerného poľa do funkcie

 // 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ýkon

 Zobrazené 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

Vo vyššie uvedenom programe sme definovali funkciu s názvom display(). Funkcia vezme int n()(2)ako svoj argument dvojrozmerné pole a vytlačí prvky poľa.

Pri volaní funkcie odovzdáme iba názov dvojrozmerného poľa ako argument funkcie display(num).

Poznámka : Nie je povinné uvádzať počet riadkov v poli. Počet stĺpcov by sa mal vždy uviesť. Preto sme použili int n()(2).

Môžeme tiež odovzdať polia s viac ako 2 dimenziami ako argument funkcie.

C ++ Vrátenie poľa z funkcie

Z funkcie môžeme tiež vrátiť pole. Skutočné pole sa však nevráti. Namiesto toho sa adresa prvého prvku poľa vracia pomocou ukazovateľov.

O vracaní polí z funkcie sa dozvieme v nasledujúcich tutoriáloch.

Zaujímavé články...