C ++ ohitusmatriisit toimintoparametreinä (esimerkkien kanssa)

Tässä opetusohjelmassa opitaan, kuinka yksi- ja moniulotteinen taulukko välitetään toimintoparametrina C ++: ssa esimerkkien avulla.

C ++: ssa voimme välittää taulukot argumenttina funktiolle. Ja myös voimme palauttaa taulukot funktiosta.

Ennen kuin opit matriisien välittämisestä funktion argumenttina, varmista, että tiedät C ++ -ryhmistä ja C ++ -funktioista.

Syntaksi matriisien välittämiselle toimintoparametreina

Taulukon välittämisen syntaksi funktiolle on:

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

Katsotaanpa esimerkki,

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

Tässä olemme välittäneet intfunktiolle tyypin taulukon nimeltä merkit total(). Matriisin koko on 5.

Esimerkki 1: Yksiulotteisen taulukon välittäminen funktiolle

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

Tuotos

 Näytetään arvosanat: Opiskelija 1: 88 Opiskelija 2: 76 Opiskelija 3: 90 Opiskelija 4: 61 Opiskelija 5: 69

Tässä,

  1. Kun kutsumme funktion välittämällä argumenttina matriisi, käytetään vain taulukon nimeä.
     display(marks);
    Tässä argumenttimerkit edustavat matriisimerkkien (5) ensimmäisen elementin muistiosoitetta.
  2. Huomaa kuitenkin display()toiminnon parametri .
     void display(int m(5))
    Tässä käytämme taulukon täyttä ilmoitusta toimintoparametrissa, mukaan lukien neliön aaltosulkeet ().
  3. Funktioparametri int m(5)muuntuu arvoksi int* m;. Tämä osoittaa samaan osoitteeseen, jonka taulukon merkit osoittavat. Tämä tarkoittaa sitä, että kun manipuloimme m (5) funktion rungossa, me itse asiassa manipuloimme alkuperäisiä matriisimerkkejä.
    C ++ käsittelee taulukon siirtämistä funktiolle tällä tavalla muistin ja ajan säästämiseksi.

Moniulotteisen taulukon välittäminen funktiolle

Voimme myös välittää moniulotteiset taulukot argumenttina funktiolle. Esimerkiksi,

Esimerkki 2: Moniulotteisen taulukon välittäminen funktiolle

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

Tuotos

 Näytetään arvot: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1

Edellä olevassa ohjelmassa olemme määrittäneet funktion nimeltä display(). Funktio ottaa kaksiulotteisen taulukon int n()(2)argumenttina ja tulostaa matriisin elementit.

Kun kutsumme funktiota, välitämme vain kaksiulotteisen taulukon nimen funktion argumenttina display(num).

Huomautus : Taulukon rivien lukumäärää ei tarvitse ilmoittaa. Sarakkeiden lukumäärä on kuitenkin aina määritettävä. Siksi olemme käyttäneet int n()(2).

Voimme myös välittää matriisit, joissa on enemmän kuin 2 ulottuvuutta funktion argumenttina.

C ++ Matriisin palauttaminen funktiosta

Voimme myös palauttaa taulukon funktiosta. Todellista taulukkoa ei kuitenkaan palauteta. Sen sijaan taulukon ensimmäisen elementin osoite palautetaan osoittimien avulla.

Opimme taulukoiden palauttamisen toiminnosta tulevissa opetusohjelmissa.

Mielenkiintoisia artikkeleita...