Passerer en matrise til en funksjon C ++

Passing An Array Function C



En matrise er en gruppe elementer av samme datatype. Mange funksjoner utføres på matriser enten i hovedprogrammet eller utenfor det, i funksjonene. I C ++, når det gjelder funksjoner, må vi passere dem. Dette gjøres via parametere som argumenter. Disse argumentene kan ha forskjellige måter, enten store matriser eller gjennom pekermatrisen. I denne opplæringen vil vi dekke noen viktige aspekter ved matrisoverføring ved hjelp av forskjellige parametere for funksjonene.

Syntaks

[Komme tilbaketype] [navnet tilfunksjon] (datatypematrisenavn[matrisestørrelse])

{

funksjonkropp

}

Eksempel 1

Tenk på et eksempel der vi må skrive ut karakterene til studentene i C ++ - programmet. Denne utskriften vil bli tatt i en egen funksjon i stedet for i hovedprogrammet. I kontrast vil vi ta innganger i hovedprogrammet og overføre disse verdiene til funksjonen som en parameter. Vurder funksjonen. I parameteren er det en matrisedatatypevariabel som godtar verdiene til en matrise. Hele serien er deklarert her. Merkene vil bli vist ved hjelp av for loop. Som i matriser trenger vi sløyfer for å få utskrift fra dem.









Når vi går mot hovedfunksjonen, erklærer vi en matrise med størrelse og verdier i den. Som vi må kalle funksjonen. Så metoden er at vi skriver funksjonsnavnet med navnet på matrisen i parameteren som et argument. Vi har ikke definert størrelsen på matrisen.



Vise(merker);

Argumentet i parameteren innebærer minneadressen til matrisen. I parameteren til funksjonens topptekst blir int m [7] konvertert til int *m. Dette inkluderer den samme adressen som den opprinnelige matrisen. Når vi bruker m [5] i funksjonskroppen, skal vi manipulere den opprinnelige matrisen.





Ugyldig skjerm(int m[7] )

I Linux -operativsystemet krever det å installere utgang via en terminal. Den trenger en kompilator for å kompilere og deretter utføre koden i ledetekstterminalen. G ++ brukes i C ++ for samlingen.



$g ++ -ellerkode3 kode3.c

$./kode3

Hvor –o brukes til å lagre utdataene fra kildefilen til utdatafilen.

Fra utgangen kan du observere at alle tallene som starter i matrisen i hovedfunksjonen, sendes og vises gjennom displayfunksjonen.

Eksempel 2

Et annet eksempel på matrise som går gjennom parameter er å overføre en flerdimensjonal matrise til funksjonen. En todimensjonal matrise (2d) brukes her. I hovedfunksjonen må vi initialisere en matrise.

Int array[rad][kolonne]

2d -arrayinitialisering inkluderer rad og kolonne. Og ordren deres skal beholdes gjennom hele programmet. 2d -array initialiseres med to tall i parentesene. Som vi har beskrevet 2 kolonner i initialiseringen.

Vise(på en);

Vi vil bare bruke matrisenavnet i parameteren som et argument.

Nå vil vi se hvordan skjermfunksjonen fungerer. Når funksjonen startes, tar det en matrisevariabel for å godta en matrise som er passert av funksjonsanropet gjennom hovedprogrammet.

Ugyldig skjerm(int n[][2] )

Det er obligatorisk å nevne antall kolonner. Til sammenligning er det ikke viktig når det gjelder rader. Derfor har vi forlatt radbrakettene tomme her mens vi bruker for sløyfe for å vise resultatene. Men når det gjelder en todimensjonal matris, bruker vi en nestet sløyfe. Den inneholder to for setninger med 2 variabler i dem.

Vi kan se utgangen ved å bruke den samme kompilatoren. Du kan se resultatene at hver verdi vises separat med raden og kolonnummeret.

Eksempel 3

Dette eksemplet er litt ulikt de tidligere. I dette eksemplet nevner vi matrisestørrelse i parameteren til funksjonsanropet. Og i funksjonserklæringen introduseres også en variabel for å godta størrelsen på en matrise.

Fra hovedprogrammet initialiseres en matrise med verdiene.

Gj.snitt = getAverage(balansere,5);

Resultatet blir lagret i avg -variabelen. I stedet for bare å sende matrisenavnet, blir matrisestørrelsen også lagt til parameteren.

Parameteren inneholder også variabel typen matrise og en heltall datatype for å motta matrisestørrelsen. Typen til hovedprogrammet er int fordi det vil motta en heltallsverdi fra funksjonen. Ellers er det ugyldig i andre tilfeller.

Nå vil vi se utgangen. Denne verdien er synlig gjennom bildet er hentet fra funksjonen.

Eksempel 4

Dette eksemplet gjelder å bestemme det maksimale antallet i matrisen, faktisk fra to matriser. Her initialiserer vi to matriser i hovedprogrammet. Begge matriser sendes separat til funksjonen i separate funksjonsanrop

printMax(arr1);

printMax(arr2);

hvor printMax er navnet på funksjonen og arr er matrisen. Resultatet kommer ikke tilbake fra funksjonen og vises der. For loop vil beregne det maksimale antallet i begge matriser. If-setning brukes inne i for-løkken. Overskriften til funksjonen er:

void printMax(int arr[5])

Siden begge matrisene inneholder forskjellige verdier, vil begge resultatene være forskjellige.

Eksempel 5

Dette eksemplet er en oppsummering av alle typer matriser som går gjennom parameterne. Disse kan være store, usized eller peker -arrays. Vi vil vurdere dem en etter en.

I hovedprogrammet blir hver funksjon deklarert først. Du kan påpeke forskjellen i erklæringen deres.

Int sum1(int tmp[5]);

Int sum2(int tmp[]);

Int sum3(int*tmp);

Disse tre matrisene viser at matriser kan passere med disse parameterne i funksjonen.

Etter initialisering av funksjoner har vi hovedprogrammet der matrisen deklareres. I motsetning til det forrige eksemplet initialiseres en matrise i stedet for to, men den sendes på tre forskjellige måter. Nå vil vi se funksjonsanropene som gjøres her.

Totalt = sum1(salg);

Totalt = sum2(salg);

Totalt = sume3(salg);

Utgangen vises i hovedfunksjonen, så en variabel erklæres å godta verdien returnert av funksjonen. Fra alle tre funksjonsanropene kan du se at her er parameterne de samme. Hver matrise inneholder bare navnet på en matrise. Men parameterne for funksjonen som godtar matrisen er forskjellige.

Den indre kroppen til alle tre funksjonene er den samme, da summen av alle tallene beregnes ut fra bruken av For loop. Metodikken og matrisens verdier er de samme; bare det er diskriminering mellom parametrene til funksjonene. Derfor er det bevist at vi enten kan bruke forskjellige metoder for å godta en matrise eller utføre den samme funksjonaliteten, og svaret er det samme. Vi kan bekrefte det ved å sjekke utgangen. Ved å bruke den samme kompileringsprosedyren, får vi utgangen vist i bildet under.

Du kan se at svaret er det samme for alle de tre funksjonene som brukes.

Konklusjon

I denne artikkelen vil brukeren bli kjent med bestått metode for en matrise i parametere. Arrays kan håndteres i mange tilfeller når det gjelder å returnere verdien eller sende den i argumenter.