Masīva nodošana funkcijai C ++

Passing An Array Function C



Masīvs ir viena veida datu elementu grupa. Daudzas funkcijas tiek veiktas masīvos vai nu galvenajā programmā, vai ārpus tās, funkcijās. C ++ funkcijām mums tās jānodod. Tas tiek darīts, izmantojot parametrus kā argumentus. Šie argumenti var būt dažādi, vai nu apjomīgi masīvi, vai arī rādītāju masīvs. Šajā apmācībā mēs apskatīsim dažus galvenos masīva pārsūtīšanas aspektus, izmantojot dažādus funkciju parametrus.

Sintakse

[Atgrieztiestipa] [vārdsfunkciju] (datitipamasīva nosaukums[masīvsIzmērs])

{

funkcijuķermenis

}

1. piemērs

Apsveriet piemēru, kurā mums ir jāizdrukā C ++ programmas studentu atzīmes. Šī izdruka tiks izmantota atsevišķā funkcijā, nevis galvenajā programmā. Turpretī mēs ņemsim ievadi galvenajā programmā un pārsūtīsim šīs vērtības funkcijai kā parametru. Apsveriet funkciju. Tā parametrā ir masīva datu tipa mainīgais, kas pieņems masīva vērtības. Šeit ir norādīts viss masīvs. Zīmes tiks parādītas ar cilpas palīdzību. Tāpat kā masīvos, mums ir nepieciešamas cilpas, lai no tām izdrukātu.









Pārejot uz galveno funkciju, mēs deklarējam masīvu ar tā lielumu un vērtībām. Kā mums jāsauc funkcija. Tātad metode ir tāda, ka parametra parametrā kā argumentu mēs ierakstām funkcijas nosaukumu ar masīva nosaukumu. Mēs neesam definējuši masīva lielumu.



Displejs(zīmes);

Parametra arguments norāda uz masīva atmiņas adresi. Funkcijas galvenes parametrā int m [7] tiek pārvērsts par int *m. Tas ietver to pašu adresi kā sākotnējais masīvs. Izmantojot funkcijas pamattekstu m [5], mēs manipulēsim ar sākotnējo masīvu.





Tukšs displejs(int m[7] )

Linux operētājsistēmā, lai iegūtu izvadi caur termināli, ir jāinstalē daži priekšnoteikumi. Tam ir nepieciešams kompilators, lai apkopotu un pēc tam izpildītu kodu komandu uzvednes terminālī. Apkopošanai C ++ tiek izmantots G ++.



$g ++ -vaikods3 kods3.c

$./kods3

Kur –o tiek izmantots, lai saglabātu izvadi no avota faila līdz izvades failam.

No izvades jūs varat novērot, ka visi galvenās funkcijas masīvā iniciētie skaitļi tiek nodoti un parādīti, izmantojot displeja funkciju.

2. piemērs

Vēl viens piemērs attiecībā uz masīvu, kas iet caur parametru, ir daudzdimensiju masīva nodošana funkcijai. Šeit tiek izmantots divdimensiju masīvs (2d). Galvenajā funkcijā mums jāinicializē masīvs.

Int masīvs[rinda][sleja]

2d masīva inicializācija ietver rindu un kolonnu. Un to secība ir jāsaglabā visā programmas laikā. 2d masīvs tiek inicializēts ar diviem cipariem iekavās. Kā mēs inicializācijā esam aprakstījuši 2 kolonnas.

Displejs(uz vienu);

Mēs kā argumentu izmantosim tikai parametra masīva nosaukumu.

Tagad mēs apskatīsim displeja funkcijas darbību. Kad funkcija tiek palaista, ir nepieciešams masīva mainīgais, lai pieņemtu masīvu, ko funkcija izsauc, izmantojot galveno programmu.

Tukšs displejs(int n[][2] )

Obligāti ir jānorāda kolonnu skaits. Salīdzinājumam - rindu gadījumā tas nav būtiski. Tāpēc mēs esam atstājuši rindu iekavas tukšas, jo mēs izmantojam ciklu, lai parādītu rezultātus. Bet divdimensiju masīva gadījumā mēs izmantojam ligzdotu cilpu. Tajā ir divi paziņojumi ar 2 mainīgajiem.

Mēs varam apskatīt rezultātu, izmantojot to pašu kompilatoru. Jūs varat redzēt rezultātus, ka katra vērtība tiek parādīta atsevišķi ar rindu un kolonnas numuru.

3. piemērs

Šis piemērs nedaudz atšķiras no iepriekšējiem. Šajā piemērā funkcijas izsaukuma parametrā tiek minēts masīva lielums. Un funkciju deklarācijā ir ieviests arī mainīgais, lai pieņemtu masīva lielumu.

Sākot no galvenās programmas, masīvs tiek inicializēts ar vērtībām.

avg = getAverage(līdzsvars,5);

Rezultāts tiks saglabāts mainīgajā mainīgajā. Tā vietā, lai nodotu tikai masīva nosaukumu, parametram tiek pievienots arī masīva lielums.

Parametrs satur arī masīva tipa mainīgo un veselu skaitļu datu tipu, lai saņemtu masīva lielumu. Galvenās programmas veids ir int, jo tā no funkcijas saņems veselu skaitli. Pretējā gadījumā citos gadījumos tas nav spēkā.

Tagad mēs redzēsim rezultātu. Šī vērtība ir redzama caur attēlu, kas iegūts no funkcijas.

4. piemērs

Šis piemērs attiecas uz maksimālā skaita noteikšanu masīvā faktiski no diviem masīviem. Šeit mēs inicializējam divus masīvus galvenajā programmā. Abi masīvi tiek atsevišķi nodoti funkcijai atsevišķos funkciju izsaukumos

printMax(arr1);

printMax(arr2);

kur printMax ir funkcijas nosaukums un arr ir masīvs. Rezultāts no funkcijas neatgriezīsies un tiks parādīts tur. Cilpa aprēķinās maksimālo skaitu abos masīvos. Ja cilnē for tiek izmantots paziņojums If. Funkcijas galvene ir šāda:

void printMax(iebraucējs[5])

Tā kā abos masīvos ir dažādas vērtības, abi rezultāti būs atšķirīgi.

5. piemērs

Šis piemērs ir visu masīvu veidu kopsavilkums, kas iet caur parametriem. Tie var būt lieluma, lieluma vai rādītāju masīvi. Mēs tos izskatīsim pa vienam.

Galvenajā programmā katra funkcija tiek deklarēta vispirms. Jūs varat norādīt atšķirību viņu deklarācijā.

Iekšējā summa 1(int tmp[5]);

Vidējā summa 2(int tmp[]);

Int sum 3(int*tmp);

Šie trīs masīvi attēlo, ka masīvus var nodot, kuriem ir šie parametri funkcijā.

Pēc funkciju inicializācijas mums ir galvenā programma, kurā tiek deklarēts masīvs. Atšķirībā no iepriekšējā piemēra viens masīvs tiek inicializēts divu vietā, bet tas tiek nodots trīs dažādos veidos. Tagad mēs redzēsim šeit veiktos funkciju zvanus.

Kopā = summa1(pārdošana);

Kopā = summa2(pārdošana);

Kopā = sume3(pārdošana);

Rezultāts tiek parādīts galvenajā funkcijā, tāpēc mainīgais tiek deklarēts, lai pieņemtu funkcijas atgriezto vērtību. No visiem trim funkciju izsaukumiem var redzēt, ka šeit parametri ir vienādi. Katrs masīvs satur tikai masīva nosaukumu. Bet funkcijas parametri, kas pieņem masīvu, ir atšķirīgi.

Visu trīs funkciju iekšējais korpuss ir vienāds, jo visu skaitļu summa tiek aprēķināta, izmantojot cilpu For. Metodika un masīva vērtības ir vienādas; tikai pastāv atšķirība starp funkciju parametriem. Tādējādi ir pierādīts, ka mēs varam vai nu izmantot dažādas metodes, lai pieņemtu masīvu, vai veikt vienu un to pašu funkcionalitāti, un atbilde ir viena. Mēs to varam apstiprināt, pārbaudot izvadi. Izmantojot to pašu apkopošanas procedūru, mēs iegūsim rezultātu, kas parādīts zemāk pievienotajā attēlā.

Jūs varat redzēt, ka atbilde uz visām trim izmantotajām funkcijām ir vienāda.

Secinājums

Šajā rakstā lietotājs uzzinās par masīva nodošanas metodi parametros. Masīvus var apstrādāt daudzos gadījumos, kad runa ir par vērtības atdošanu vai argumentu nodošanu.