Tömb átadása a C ++ függvénynek

Passing An Array Function C



A tömb azonos adattípusú elemek csoportja. Sok funkciót hajtanak végre tömbökön a főprogramban vagy azon kívül, a függvényekben. C ++ - ban a függvények esetében át kell adnunk azokat. Ez paramétereken keresztül érvként történik. Ezek az érvek többféleképpen is megjelenhetnek, akár nagy tömbök, akár a mutató tömb segítségével. Ebben az oktatóanyagban a tömbátvitel néhány fontos aspektusát ismertetjük a funkciók különböző paramétereivel.

Szintaxis

[Visszatéréstípus] [nevefunkció] (adattípustömbnév[sorméret])

{

funkciótest

}

1. példa

Vegyünk egy példát, amelyben ki kell nyomtatnunk a C ++ program diákjainak jegyeit. Ez a nyomtatás külön funkcióban készül, nem pedig a fő programban. Ezzel szemben a főprogram bemeneteit vesszük át, és ezeket az értékeket paraméterként átvisszük a függvénybe. Fontolja meg a funkciót. A paraméterében van egy tömb adattípus változó, amely elfogadja a tömb értékeit. A teljes tömb itt található. A jelek a for ciklus segítségével jelennek meg. A tömbökhöz hasonlóan hurkokra van szükségünk ahhoz, hogy nyomtatást nyerjünk belőlük.









A fő funkció felé haladva deklarálunk egy tömböt, benne a méretével és értékeivel. Ahogy meg kell hívnunk a függvényt. Tehát a módszer az, hogy argumentumként a függvény nevét a tömb nevével írjuk be a paraméterbe. Nem határoztuk meg a tömb méretét.



Kijelző(jelek);

A paraméter argumentuma magában foglalja a tömb memóriacímét. A függvény fejlécének paraméterében az int m [7] int *m -re konvertálódik. Ez ugyanazt a címet tartalmazza, mint az eredeti tömb. Amikor az m [5] -t használjuk a függvény törzsében, akkor az eredeti tömböt fogjuk manipulálni.





Üres kijelző(int m[7] )

Linux operációs rendszerben a kimenet terminálon keresztüli beszerzése bizonyos előfeltételeket igényel. Fordítóra van szüksége a kód fordításához és végrehajtásához a parancssori terminálon. Az összeállításhoz a G ++ -t használják a C ++ nyelvben.



$g ++ -vagykód3 kód3.c

$./kód3

Ahol –o a forrásfájl kimenetének a kimeneti fájlba történő tárolására szolgál.

A kimenetről megfigyelheti, hogy a főfunkció tömbjében kezdeményezett összes szám átadásra kerül és megjelenik a kijelzőfunkción keresztül.

2. példa

Egy másik példa a paraméteren áthaladó tömbre vonatkozóan egy többdimenziós tömb átadása a függvénynek. Itt kétdimenziós tömböt (2d) használunk. A fő funkcióban egy tömböt kell inicializálnunk.

Int tömb[sor][oszlop]

A 2d tömb inicializálása sorokat és oszlopokat tartalmaz. És a sorrendet meg kell őrizni a program egész ideje alatt. 2d tömb inicializálása két számmal a zárójelben. Amint az inicializálás során 2 oszlopot leírtunk.

Kijelző(az egyiken);

Csak a tömb nevét fogjuk használni a paraméterben argumentumként.

Most megnézzük a kijelző funkció működését. A funkció elindításakor egy tömbváltozó szükséges ahhoz, hogy elfogadja a függvényhívás által a főprogramon keresztül átadott tömböt.

Üres kijelző(int n[][2] )

Kötelező megemlíteni az oszlopok számát. Ehhez képest a sorok esetében nem nélkülözhetetlen. Ezért hagytuk itt üresen a soros zárójeleket, mivel a ciklusban az eredményeket jelenítjük meg. Kétdimenziós tömb esetén azonban beágyazott hurkot használunk. Kettőt tartalmaz olyan állításokhoz, amelyekben 2 változó található.

A kimenetet ugyanazon fordító segítségével tekinthetjük meg. Láthatja az eredményeket, hogy minden érték külön jelenik meg a sorral és az oszlopszámmal.

3. példa

Ez a példa kissé eltér a korábbiaktól. Ebben a példában megemlítjük a tömb méretét a függvényhívás paraméterében. A függvény deklarációban pedig egy változó is bevezetésre kerül, hogy elfogadja a tömb méretét.

A főprogramból kiindulva egy tömb inicializálódik az értékekkel.

átlag = getAverage(egyensúly,5);

Az eredmény az avg változóban lesz tárolva. Ahelyett, hogy csak a tömb nevét adja meg, a tömb mérete is hozzáadódik a paraméterhez.

A paraméter tartalmazza a tömb típusú változót és egy egész adattípust is a tömb méretének fogadásához. A főprogram típusa int, mert egész értéket kap a függvénytől. Ellenkező esetben más esetekben semmis.

Most látni fogjuk a kimenetet. Ez az érték látható a függvényből kapott képen keresztül.

4. példa

Ez a példa a tömb maximális számának meghatározására vonatkozik, valójában két tömbből. Itt inicializálunk két tömböt a fő programban. Mindkét tömb külön függvényhívásban kerül átadásra a függvénynek

printMax(arr1);

printMax(arr2);

ahol a printMax a függvény neve, az arr pedig a tömb. Az eredmény nem tér vissza a függvényből, és ott megjelenik. A ciklus kiszámítja a maximális számot mindkét tömbben. Az if-utasítást a for cikluson belül használják. A függvény fejléce a következő:

void printMax(int arr[5])

Mivel mindkét tömb különböző értékeket tartalmaz, mindkét eredmény eltérő lesz.

5. példa

Ez a példa a paramétereken áthaladó összes tömbtípus összefoglalása. Ezek lehetnek méretezett, méretezetlen vagy mutató tömbök. Egyenként figyelembe vesszük őket.

A főprogramban minden funkciót először deklarálnak. A nyilatkozatukban rámutathat a különbségre.

Belső összeg 1(int tmp[5]);

Int összeg2(int tmp[]);

Int összeg3(int*tmp);

Ez a három tömb azt ábrázolja, hogy a tömbök átadhatók, ha ezek a paraméterek szerepelnek a függvényben.

A függvény inicializálása után megvan a fő program, amelyben a tömb deklarálva van. Az előző példától eltérően egy tömb inicializálódik kettő helyett, de három különböző módon kerül átadásra. Most látni fogjuk az itt végrehajtott függvényhívásokat.

Összesen = összeg1(értékesítés);

Összesen = összeg2(értékesítés);

Összesen = sume3(értékesítés);

A kimenet a fő függvényben jelenik meg, így egy változó deklarálva van, hogy elfogadja a függvény által visszaadott értéket. Mindhárom funkcióhívásból látható, hogy itt a paraméterek azonosak. Minden tömb csak egy tömb nevét tartalmazza. De a tömböt elfogadó függvény paraméterei eltérőek.

Mindhárom függvény belső teste azonos, mivel az összes szám összegét a For ciklus használatából számítjuk ki. A módszertan és a tömb értéke megegyezik; csak a funkciók paraméterei között van diszkrimináció. Ezért bebizonyosodott, hogy vagy különböző módszereket használhatunk egy tömb elfogadására, vagy ugyanazt a funkciót hajthatjuk végre, és a válasz ugyanaz. A kimenet ellenőrzésével megerősíthetjük. Ugyanezt az összeállítási eljárást használva kapjuk meg az alábbi képen látható kimenetet.

Látható, hogy a válasz mindhárom használt funkcióra ugyanaz.

Következtetés

Ebben a cikkben a felhasználó megismerheti a tömb paraméterekben történő átadási módszerét. A tömbök sok esetben kezelhetők, amikor az érték visszaadásáról vagy az érvekben történő átadásáról van szó.