logo

C++-funksjoner – Pass By Reference

Det finnes flere måter data (eller variabler) kan sendes som et argument til en funksjon. To av de vanlige er Passing by Value og Passing by Reference. Passering ved referanse lar en funksjon endre en variabel uten å lage en kopi. Vi må deklarere referansevariabler. Minneplasseringen til den beståtte variabelen og parameteren er den samme. Derfor gjenspeiles enhver endring av parameteren også i variabelen i dens overordnede funksjon. Denne artikkelen fokuserer på å diskutere hvordan man sender variabler ved referanse i C++.

Hva er en Pass by Reference?

Når en variabel sendes som en referanse til en funksjon, lagres adressen til variabelen i en pekervariabel inne i funksjonen. Derfor er variabelen inne i funksjonen et alias for den beståtte variabelen. Derfor vil alle operasjoner som utføres på variabelen inne i funksjonen også reflekteres i den kallende funksjonen.



  • Denne evnen til å reflektere endringer kan returnere mer enn én verdi av en funksjon.
  • En void-funksjon kan også teknisk returnere verdi/er ved å bruke denne metoden.

De & (adresse til) operatør angir verdier som sendes ved pass-by-referanse i en funksjon. Nedenfor er C++-programmet for å implementere pass-by-referanse:

C++

likhet av strenger i java








// C++ program to implement> // pass-by-reference> #include> using> namespace> std;> > void> f(>int> & x)> {> >x--;> }> > // Driver code> int> main()> {> >int> a = 5;> >cout << a << endl;> >f(a);> >cout << a << endl;> }>

>

>

Produksjon

5 4>

Forklaring:

  • Først defineres en funksjon med returdatatypen void og tar inn verdi ved referanse (som angitt med & adresseskilt i de formelle parameterne).
  • Funksjonen reduserer verdien av dens formelle parameter med 1.
  • Etter som, inne i hovedfunksjonen, en heltallsvariabel kalt en initialiseres med verdien 5.
  • Verdien av 'a' er trykt på konsollen. Funksjonen f() kalles, og variabelen sendes som et argument.
  • Inne i funksjonen reduseres variabelens verdi med 1.
  • Ved retur fra funksjonen vises variabelens verdi igjen, som viste seg å være 1 mindre enn den opprinnelige verdien.

Derfor reflekteres endringene i en variabel som er sendt ved referanse til en funksjon i den kallende funksjonen.

Bytt funksjon ved å bruke Pass-By-Reference

Byttefunksjonen bytter ut verdiene til de to variablene den mottar som argumenter. Nedenfor er C++-programmet for å bytte ut verdiene til to variabler ved å bruke pass-by-referanse.

C++

navn på sminkeprodukter




// C++ program to swap the values> // of two variables using> // pass-by-reference> #include> > // Prototype of the function> void> swap(>int> &,>int> &);> > // Driver code> int> main()> {> >int> x, y;> > >// Inputting two variables> >printf>(>'Enter the value of x and y '>);> >scanf>(>'%d%d'>, &x, &y);> > >// Displaying their values before swapping> >printf>(>'Before Swapping x = %d y = %d '>,> >x, y);> > >// Calling the function & sending variable> >// values as argument> >swap(x, y);> > >// Displaying their values after swapping> >printf>(>'After Swapping x = %d y = %d '>,> >x, y);> >return> 0;> }> > // Function uses pass by reference method> // to swap passed variable values> void> swap(>int> &a,>int> &b)> {> >int> temp;> > >temp = b;> >b = a;> >a = temp;> }>

10 ml i oz
>

>

Produksjon:

C++ - Bytt funksjon ved å bruke Pass-By-Reference

Forklaring:

  • Først defineres funksjonsprototypen (valgfritt hvis funksjonen er definert før hovedfunksjonen).
  • Inne i hovedfunksjonen tas verdiene til de to variablene som input fra brukeren.
  • Verdiene før du kaller swap-funksjonen er trykt på konsollen.
  • Deretter sendes verdiene som et argument til swap-funksjonen.
  • Byttefunksjonen bruker call-by-reference og inneholder koden for å bytte de to variablene.
  • Når funksjonen er fullført, vises verdien av de to variablene i hovedfunksjonen (etter oppfordringen til å bytte).
  • De byttede verdiene vises på skjermen.

Gå forbi referanse med pekere

Det er også mulig å sende variabeladressen fra den anropende funksjonen og bruke dem som en peker inne i den kalte funksjonen. Dette tillater litt mer eksplisitt endring av variabelverdier i funksjonen.

Nedenfor er C++-programmet for å implementere pass-by-referanse med pekere:

C++




// C++ program to implement> // pass-by-reference with> // pointers> #include> using> namespace> std;> > void> f(>int> *x)> {> >*x = *x - 1;> }> > // Driver code> int> main()> {> >int> a = 5;> >cout << a << endl;> >f(&a);> >cout << a << endl;> }>

streng jsonobject

>

>

Produksjon

5 4>

Forklaring:

  • For det første er en funksjon definert med returdatatypen void og tar inn verdi som pekere (som angitt med * stjerne logg inn de formelle parameterne).
  • Funksjonen reduserer verdien av dens formelle parameter med 1.
  • Deretter, inne i hovedfunksjonen, initialiseres en heltallsvariabel kalt 'a' med verdien 5.
  • Deretter vises denne verdien. Funksjonen kalles, og adressen til variabelen sendes som et argument.
  • Inne i funksjonen reduseres pekervariabelens verdi med 1.
  • Ved retur fra funksjonen vises variabelens verdi igjen, som viste seg å være 1 mindre enn den opprinnelige verdien.