En kopi av en matrise produseres ikke når den er passert med referanse. I stedet mottar funksjonen eller metoden en referanse til den første matrisen. Som et resultat vil eventuelle modifikasjoner gjort i matrisen i funksjonen eller metoden ha innvirkning på den første matrisen.
Det kan ta en stund å passere en matrise etter verdi siden den lager en duplikat av den originale matrisen i minnet, spesielt når du jobber med enorme matriser. Likevel, passerer en matrise via referanse er mer effektivt siden det ganske enkelt passerer minneplassen til den opprinnelige matrisen.
Funksjonsargumentet må spesifiseres som en referansevariabel ved bruk av 'Og'Symbol for å pass en matrise som referanse i C++. Dette eliminerer kravet om at funksjonen skal returnere en verdi siden eventuelle modifikasjoner som er gjort på matrisen innenfor funksjonen også vil bli brukt på den første matrisen.
#inkludere
void modify_array (int (& arr) [3])
arr [0] = 5;
arr [1] = 6;
arr [2] = 7;
int main ()
int arr [3] = 1, 2, 3;
modify_array (arr);
std :: cout << "Modified array: ";
for (int i = 0; i < 3; i++)
std :: cout << arr[i] << " ";
std :: cout << std::endl;
retur 0;
I koden ovenfor, argumentet for modify_array () Funksjon er en referanse til en rekke tall. De modify_array () Metode endrer matriseelementene ved å gi dem nye verdier. I dette tilfellet er 5, 6 og 7 satt som de tre første varene i matrisen, følgelig.
En rekke tre heltall er definert og initialisert med tallene 1, 2 og 3 i hovedfunksjonen. Denne matrisen blir deretter sendt som et innspill til modify_array () metode. De modify_array () metoden endrer medlemmene av originalen matrise siden matrisen sendes ved referanse.
Produksjon
Fordelene med å passere en matrise som referanse
1: Effektivitet
Effektivitet er en fordel med Passerende matriser med referanse. En duplikat av hele matrisen opprettes når en matrise blir gitt av verdi. Dette kan konsumere mye minne og bremse programvaren. Når matriser sendes ved referanse, bruker programmet mindre minne og kjører raskere.
2: Tilpasningsevne
Fleksibilitet er en annen fordel med Passerende matriser med referanse. Når en matrise er passert med referanse, Funksjonen eller metoden kan legge til, fjerne eller endre matrisens elementer. Fordi funksjonen eller metoden kan brukes til å utføre forskjellige aktiviteter basert på programmets krav, gir dette programmering ekstra fleksibilitet.
Det er noen viktige faktorer du må vurdere når du gir en matrise som referanse i C++. Først ut, 'Og'Symbol er ikke påkrevd når passerer et array -navn som referanse argument siden et array -navn effektivt er en peker til matrisens første element. For det andre må matrisens størrelse gis når du erklærer en referanseparameter for en matrise. Til slutt er det risikabelt og tilrådelig å unngå å endre størrelsen på en matrise i en funksjon.
Konklusjon
Et viktig trekk ved C ++ som muliggjør mer effektiv og tilpasningsdyktig programmering er muligheten til Pass -matriser med referanse. Minnet er bevart og applikasjonen kjører raskere ved å bruke referansen til den originale matrisen. Dessuten gir muligheten til å endre den første matrisen ytterligere programmeringsfrihet. For å garantere passende utførelse er det avgjørende å bruke riktig syntaks og tydelig oppgi matrisestørrelsen i funksjonen eller metodesignaturen.