C ++ caurlaides masīvi kā funkciju parametri (ar piemēriem)

Šajā apmācībā mēs uzzināsim, kā ar piemēru palīdzību C ++ nodot viendimensiju un daudzdimensionālu masīvu kā funkcijas parametru.

Programmā C ++ masīvus kā argumentu varam nodot funkcijai. Un arī mēs varam atgriezt masīvus no funkcijas.

Pirms uzzināt par masīvu nodošanu kā funkcijas argumentu, pārliecinieties, vai zināt par C ++ masīviem un C ++ funkcijām.

Sintakse masīvu kā funkciju parametru nodošanai

Sintakse masīva nodošanai funkcijai ir šāda:

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

Apskatīsim piemēru,

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

Šeit mēs esam nodevuši intfunkcijai masīvu ar nosaukumu total(). Masīva lielums ir 5.

1. piemērs: Viendimensiju masīva nodošana 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; )

Rezultāts

 Parādāmās atzīmes: Studentu 1: 88 Studentu 2: 76 Studentu 3: 90 Studentu 4: 61 Studentu 5: 69

Šeit,

  1. Kad mēs izsaucam funkciju, nododot masīvu kā argumentu, tiek izmantots tikai masīva nosaukums.
     display(marks);
    Šeit argumentu zīmes attēlo masīva zīmju pirmā elementa atmiņas adresi (5).
  2. Tomēr ievērojiet display()funkcijas parametru .
     void display(int m(5))
    Šeit mēs izmantojam pilnu masīva deklarāciju funkcijas parametrā, ieskaitot kvadrātiekavas ().
  3. Funkcijas parametrs tiek int m(5)pārvērsts par int* m;. Tas norāda uz to pašu adresi, ko norāda masīvu zīmes. Tas nozīmē, ka, manipulējot ar m (5) funkcijas ķermenī, mēs faktiski manipulējam ar sākotnējām masīvu atzīmēm.
    Šādi C ++ apstrādā masīva nodošanu funkcijai, lai ietaupītu atmiņu un laiku.

Daudzdimensionāla masīva nodošana funkcijai

Mēs varam arī nodot daudzdimensionālus masīvus kā argumentu funkcijai. Piemēram,

2. piemērs: Daudzdimensionāla masīva nodošana 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; ) 

Rezultāts

 Parāda vērtības: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

Iepriekš minētajā programmā mēs esam definējuši funkciju ar nosaukumu display(). Funkcija ņem divdimensiju masīvu int n()(2)kā argumentu un izdrukā masīva elementus.

Izsaucot funkciju, kā funkcijas argumentu mēs nododam tikai divdimensiju masīva nosaukumu display(num).

Piezīme : Masīvā nav obligāti jānorāda rindu skaits. Tomēr kolonnu skaits vienmēr jānorāda. Tāpēc mēs to izmantojām int n()(2).

Mēs varam arī nodot masīvus ar vairāk nekā 2 dimensijām kā funkcijas argumentu.

C ++ masīva atgriešana no funkcijas

Mēs varam arī atgriezt masīvu no funkcijas. Tomēr faktiskais masīvs netiek atgriezts. Tā vietā masīva pirmā elementa adrese tiek atgriezta ar rādītāju palīdzību.

Mēs uzzināsim par masīvu atgriešanu no funkcijas nākamajās apmācībās.

Interesanti raksti...