Forskjellen mellom samtale etter verdi og samtale ved referanse

Nøkkelforskjell - Ring etter verdi vs. Ring ved referanse
 

Mange programmeringsspråk bruker funksjoner. En funksjon er et sett med uttalelser for å utføre en bestemt oppgave. Hovedkoden kan deles inn i flere funksjoner og ringe til dem. Det er to måter å ringe en funksjon som ring for verdi og ring ved referanse. I samtalen etter verdi metode overføres kopier av variabler til funksjonen. Hvis det er en endring i verdien av funksjonen, endrer den ikke den opprinnelige verdien. Ved henvisning ved referanse gjenspeiler endringer av variabelen inne i funksjonen den opprinnelige verdien. De nøkkelforskjell mellom samtale for verdi og ring ved referanse er det, I samtalen etter verdi sendes kopien av variabler til funksjonen og i oppkall ved referanse, blir adressene til variablene overført til funksjonen.  Denne artikkelen diskuterer forskjellen mellom samtale for verdi og samtale ved henvisning.

INNHOLD

1. Oversikt og nøkkelforskjell
2. Hva er Call for Value
3. Hva er Call for Reference
4. Likheter mellom Ring etter verdi og Ring via referanse
5. Side ved side-sammenligning - Ring etter verdi vs. Ring ved referanse i tabellform
6. Sammendrag

Hva er Call for Value?

I kall for verdi blir kopier av variabler overført til funksjonen. Funksjonen kan endre den kopierte verdien, men den endrer ikke den opprinnelige verdien. Dette konseptet kan lett forstås ved å bytte to taleprogram. Se under C-programmet som er skrevet ved hjelp av Code Blocks-miljøet.

Figur 01: Program for å bytte to tall

I henhold til programmet som er gitt nedenfor, har variabelen 'a' verdi 20 og variabel 'b' verdi 30. Når du ringer bytte (a, b), blir disse to verdiene overført til byttefunksjonen. I byttefunksjonen kopieres 'a' til 'x' og 'b' kopieres til 'y'. Nå har 'x' verdi 20 og 'y' har verdi 30. Ved hjelp av tempvariabelen blir de to verdiene byttet. Når du skriver ut verdien av 'x' og 'y' inne i byttefunksjonen, vil utgangen gi 30 for 'x' og 20 for 'y'. Når byttefunksjonen er over, går kontrollen tilbake til hovedfunksjonen. Ved utskrift av verdiene for 'a' og 'b', i hovedfunksjonen, blir resultatene de opprinnelige verdiene. De er 20 for 'a' og 30 for 'b'. Endringer som gjøres ved hjelp av byttefunksjon reflekterer ikke i hovedprogrammet.

Figur 02: Utgang av bytteprogrammet

'x' og 'y' inne i byttefunksjonen har bytteverdier som er 30 og 20, men disse verdiene kan ikke brukes i hovedprogrammet. Selv om 'x' og 'y' har bytte verdier, er de lokale variabler å bytte funksjon og kan ikke nås av hovedfunksjonen. For å unngå dette problemet kan du ringe ved hjelp av referanse.

Hva er Call via referanse?

I denne metoden blir adressene til variablene sendt til funksjonen. Se under C-programmet som er skrevet ved hjelp av Code Blocks-miljøet.

Figur 03: Bytte av to tall ved hjelp av pekere

I følge eksemplet nedenfor er verdien av 'a' 20 og verdien av 'b' er 30. I stedet for å sende kopier av 'a' og 'b', kan programmereren sende adressene til 'a' og 'b 'bruk funksjonen, bytt (& a, & b).

Figur 04: Utgang av bytteprogrammet ved hjelp av pekere

I byttet bør funksjonen bruke pekere fordi adresser er bestått og adressene skal holdes av pekere. Innenfor funksjonen blir adressen til 'a' kopiert til 'x' og adressen til 'b' kopieres til 'y'. Ved hjelp av tempvariabelen blir "x" og "y" -verdiene byttet. I denne anropet med referansemetoden reflekterer endringene i byttefunksjonen i hovedprogrammet. Hvis du skriver ut verdiene for 'a' og 'b' i hovedsak, vil de bytte verdiene. Nå er utgangen av 'a' 30 og 'b' 20. Da funksjonen tar adressen til variablene, påvirker endringene som er gjort inne i funksjonen de opprinnelige verdiene.

Hva er likheten mellom samtale etter verdi og samtale ved henvisning?

  • Disse to metodene brukes til å ringe til funksjoner / metoder.

Hva er forskjellen mellom samtale etter verdi og samtale ved henvisning?

Ring etter verdi vs. Ring ved referanse

I samtal etter verdi sendes kopier av variabler inn i funksjonen, slik at endringer gjort inne i funksjonen, vil ikke endre den opprinnelige verdien. I oppkall ved referanse sendes variabelenes adresse til funksjonen, slik at endringer som er gjort for variabler inne i funksjonen, vil endre den opprinnelige verdien.
 Verdiendring
I oppkall etter verdi endres den opprinnelige verdien ikke. Ved oppringing refereres de opprinnelige verdiene.

Sammendrag - Ring etter verdi vs. Ring via referanse

Ring etter verdi og ring ved referanse er metoder for å ringe funksjonen. Forskjellen mellom verdi for verdi og anrop ved referanse er at i samtalen etter verdi blir kopiene av variabler overført til funksjonen og i henvisningen ved referanse, blir adressene til variablene overført til funksjonen. Bruke anrop etter verdi eller ring ved referanse avhenger av oppgaven som skal utføres.

Last ned PDF-versjonen av samtale etter verdi vs. Ring via referanse

Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til off-line formål som per sitatnotat. Vennligst last ned PDF-versjon her Forskjellen mellom Ring etter verdi og Ring via referanse

Henvisning:

1.Jaiswal, Haresh. "11 Ring etter verdi vs. Ring via referanse." YouTube, YouTube, 24. desember 2015. Tilgjengelig her