Atšķirība starp zvanu pēc vērtības un zvana pēc atsauces

Galvenā atšķirība - zvana pēc vērtības vs zvana pēc atsauces
 

Daudzas programmēšanas valodas izmanto funkcijas. Funkcija ir paziņojumu kopums konkrēta uzdevuma veikšanai. Galveno kodu var iedalīt vairākās funkcijās un piezvanīt tām. Funkcijas izsaukšanai ir divi veidi, piemēram, zvana pēc vērtības un zvana pēc atsauces. Izmantojot metodi pēc zvana pēc vērtības, mainīgo kopijas tiek nodotas funkcijā. Ja notiek funkcijas vērtības izmaiņa, tā nemaina sākotnējo vērtību. Zvanot pēc atsauces, mainīgā funkcijas izmaiņas funkcijā atspoguļo sākotnējo vērtību. galvenā atšķirība starp zvana pēc vērtības un zvana pēc atsauces ir tā, pēc izsaukuma pēc vērtības mainīgo kopijas tiek nodotas funkcijai un izsaukumu atsauces gadījumā mainīgo adreses tiek nodotas funkcijai.  Šajā rakstā apskatīta atšķirība starp izsaukumu pēc vērtības un izsaukuma pēc atsauces.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir zvana pēc vērtības
3. Kas ir Call by Reference
4. Zvana pēc vērtības un zvana pēc atsauces līdzības
5. Salīdzinājums blakus - zvana pēc vērtības vs zvana pēc atsauces tabulas formā
6. Kopsavilkums

Kas ir zvans pēc vērtības?

Zvanot pēc vērtības, mainīgo kopijas tiek nodotas funkcijai. Funkcija var mainīt šo kopēto vērtību, bet tā nemaina sākotnējo vērtību. Šo jēdzienu var viegli saprast, apmainot divu ciparu programmu. Skatiet zemāk esošo C programmu, kas uzrakstīta, izmantojot Code Blocks vidi.

01. attēls. Programma divu skaitļu apmaiņai

Saskaņā ar zemāk sniegto programmu mainīgajam “a” ir vērtība 20 un mainīgajam “b” ir vērtība 30. Kad tiek izsaukta mijmaiņas (a, b) funkcija, šīs divas vērtības tiek nodotas mijmaiņas funkcijai. Apmaiņas funkcijā “a” tiek kopēts “x” un “b” tiek kopēts “y”. Tagad 'x' vērtībai ir 20 un 'y' vērtībai 30. Izmantojot temp mainīgo, abas vērtības tiek samainītas. Drukājot “x” un “y” vērtības šajā mijmaiņas funkcijā, izvade piešķirs 30 “x” un 20 “y”. Kad mijmaiņas funkcijas izpilde ir beigusies, vadība atgriežas pie galvenās funkcijas. Drukājot vērtības “a” un “b” galvenajā funkcijā, rezultāti būs sākotnējās vērtības. Tie ir 20 burtiem “a” un 30 burtiem “b”. Izmaiņas, kas veiktas, izmantojot mijmaiņas funkciju, galvenajā programmā neatspoguļojas.

02. Attēls. Apmaiņas programmas rezultāts

“x” un “y” mijmaiņas funkcijas iekšpusē ir apmainītās vērtības, kas ir 30 un 20, bet šīs vērtības nevar izmantot galvenajā programmā. Kaut arī “x” un “y” ir apmainītas vērtības, tie ir vietējie mainīgie, lai mainītu funkciju, un tiem nevar piekļūt galvenā funkcija. Lai izvairītos no šīs problēmas, var izmantot zvanu pēc atsauces.

Kas ir Call By Reference?

Ar šo metodi funkcijai tiek nosūtītas mainīgo adreses. Skatiet zemāk esošo C programmu, kas uzrakstīta, izmantojot Code Blocks vidi.

03. attēls. Divu skaitļu apmaiņa, izmantojot norādes

Saskaņā ar doto piemēru zemāk, “a” vērtība ir 20 un “b” vērtība ir 30. Tā vietā, lai nokārtotu “a” un “b” kopijas, programmētājs var nosūtīt “a” un “b” adreses 'izmantojot funkciju, mijmaiņas (& a, & b).

04. attēls. Apmaiņas programmas rezultāts, izmantojot norādes

Apmaiņas laikā funkcijai vajadzētu izmantot norādes, jo adreses tiek nodotas, un šīm adresēm vajadzētu būt norādes. Funkcijas iekšpusē “a” adrese tiek kopēta uz “x”, bet “b” adrese tiek kopēta uz “y”. Izmantojot temp mainīgo lielumu, tiek mainītas 'x' un 'y' vērtības. Šajā aicinājumā, izmantojot atsauces metodi, izmaiņas mijmaiņas funkcijas iekšienē atspoguļojas galvenajā programmā. Galvenais, drukājot vērtības “a” un “b”, iegūs samainītās vērtības. Tagad “a” izvade ir 30 un “b” ir 20. Tā kā funkcija ņem mainīgo adreses, funkcijas iekšpusē veiktās izmaiņas ietekmē sākotnējās vērtības.

Kāda ir līdzība starp zvana pēc vērtības un zvana pēc atsauces?

  • Šīs divas metodes tiek izmantotas funkciju / metožu izsaukšanai.

Kāda ir atšķirība starp zvana pēc vērtības un zvana pēc atsauces?

Zvana pēc vērtības vai zvana pēc atsauces

Zvanot pēc vērtības, mainīgo lielumu kopijas tiek nodotas funkcijā, tāpēc funkcijā veiktās izmaiņas nemainīs sākotnējo vērtību. Zvanot pēc atsauces, mainīgo lielumu adrese tiek nodota funkcijai, tāpēc izmaiņas, kas veiktas mainīgajiem funkcijā, mainīs sākotnējo vērtību.
 Vērtības modifikācija
Zvana pēc vērtības sākotnējā vērtība nemainās. Zvanot pēc atsauces, sākotnējās vērtības mainās.

Kopsavilkums - Zvans pēc vērtības vai Zvans pēc atsauces

Zvana pēc vērtības un zvana pēc atsauces ir funkcijas izsaukšanas metodes. Atšķirība starp izsaukumu pēc vērtības un izsaukuma pēc atsauces ir tāda, ka izsaukumā pēc vērtības mainīgo lielumu kopijas tiek nodotas funkcijai, un izsaukumā ar atsauci - mainīgo adreses tiek nodotas funkcijai. Zvana pēc vērtības vai zvana pēc atsauces izmantošana ir atkarīga no veicamā uzdevuma.

Lejupielādējiet zvana pēc vērtības versijas zvana PDF versijas PDF versiju

Varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistes vajadzībām, kā norādīts citēšanas piezīmē. Lūdzu, lejupielādējiet šeit PDF versiju. Starpība starp zvanu pēc vērtības un zvana pēc atsauces

Atsauce:

1.Jaisvals, Haresh. “11 zvans pēc vērtības vai zvans pēc atsauces.” YouTube, YouTube, 2015. gada 24. decembris. Pieejams šeit