Ero puhelun arvon ja puhelun vertailun välillä

Keskeinen ero - Call by Value vs. Call to Reference
 

Monet ohjelmointikielet käyttävät toimintoja. Toiminto on joukko lauseita tietyn tehtävän suorittamiseksi. Pääkoodi voidaan jakaa useisiin toimintoihin ja kutsua niitä. Funktion kutsumiseen on kaksi tapaa, kuten puhelun arvo ja puhelun viittaus. Call by value -menetelmässä muuttujien kopioita siirretään funktioon. Jos toiminnon arvo muuttuu, se ei muuta alkuperäistä arvoa. Soitettaessa referenssinä funktion sisällä olevan muuttujan muutokset heijastavat alkuperäistä arvoa. avainero puhelun arvon ja puhelun viittauksen välillä on se, puheluarvon mukaan muuttujien kopio siirretään funktiolle ja kutsussa viitteellä, muuttujien osoitteet siirretään funktiolle.  Tässä artikkelissa tarkastellaan eroa puhelun välillä ja puhelun perusteella.

SISÄLLYS

1. Yleiskatsaus ja keskeiset erot
2. Mikä on Call by Value
3. Mikä on Call by Reference
4. Yhdenmukaisuudet puhelun perusteella ja puhelun perusteella
5. Vertailu rinnakkain - Call by Value vs. Call by Reference taulukkomuodossa
6. Yhteenveto

Mikä on Call by Value?

Kutsunarvon mukaan kopiot muuttujista siirretään funktiolle. Toiminto voi muuttaa kopioitua arvoa, mutta se ei muuta alkuperäistä arvoa. Tämä käsite voidaan ymmärtää helposti vaihtamalla kaksi numero-ohjelmaa. Katso alla olevaa C-ohjelmaa, joka on kirjoitettu Code Blocks -ympäristöllä.

Kuva 01: Ohjelma kahden numeron vaihtamiseen

Jäljempänä esitetyn ohjelman mukaan muuttujalla 'a' on arvo 20 ja muuttujalla 'b' on arvo 30. Kun kutsutaan swap (a, b) -toimintoa, nämä kaksi arvoa siirretään swap-toimintoon. Vaihtofunktiossa 'a' kopioidaan 'x' ja 'b' kopioidaan 'y'. Nyt 'x': llä on arvo 20 ja 'y': lla arvoa 30. Temp-muuttujaa käyttämällä kaksi arvoa vaihdetaan. Kun tulostetaan arvot 'x' ja 'y' vaihtotoiminnon sisällä, tulosteen arvo on 30 'x': lle ja 20 'y': lle. Kun vaihtotoiminnon suorittaminen on ohi, ohjaus palaa takaisin päätoimintoon. Tulostamalla päätoiminnossa 'a' ja 'b' arvot, tulokset ovat alkuperäisiä arvoja. Ne ovat 20 a: lle ja 30 b: lle. Vaihtotoiminnolla tehdyt muutokset eivät heijastu pääohjelmassa.

Kuva 02: Vaihto-ohjelman tulos

'x' ja 'y' vaihtotoiminnon sisällä ovat vaihdetut arvot, jotka ovat 30 ja 20, mutta näitä arvoja ei voida käyttää pääohjelmassa. Vaikka 'x': llä ja 'y': llä on vaihdetut arvot, ne ovat paikallisia muuttujia vaihdettavalle toiminnolle, eikä päätoiminto voi käyttää niitä. Tämän ongelman välttämiseksi voidaan käyttää puhelun avulla.

Mikä on Call By Reference?

Tässä menetelmässä muuttujien osoitteet lähetetään funktiolle. Katso alla olevaa C-ohjelmaa, joka on kirjoitettu Code Blocks -ympäristöllä.

Kuva 03: Kahden numeron vaihtaminen osoittimilla

Alla olevan esimerkin mukaan arvon 'a' arvo on 20 ja arvon 'b' arvo on 30. Ohjelmoija voi lähettää kappaleiden 'a' ja 'b' sijasta lähettämättä 'a' ja 'b' -osoitteita. 'käyttämällä toimintoa, swap (& a, & b).

Kuva 04: Vaihto-ohjelman tulos osoittimien avulla

Vaihtotoiminnossa toiminnon tulisi käyttää osoittimia, koska osoitteet ohitetaan ja osoittimien tulisi pitää näitä osoitteita. Toiminnon sisällä 'a' -osoite kopioidaan x: ksi ja 'b' -osoite kopioidaan 'y' -osoitteeksi. Tem-muuttujaa käyttämällä 'x' ja 'y' arvot vaihdetaan. Tässä referenssimenetelmän mukaisessa puhelussa vaihtotoiminnon sisällä tapahtuvat muutokset heijastuvat pääohjelmassa. 'A' ja 'b' -arvojen tulostaminen pääosassa antaa vaihdetut arvot. Nyt 'a': n lähtö on 30 ja 'b' on 20. Koska funktio ottaa muuttujien osoitteen, toiminnon sisällä tehdyt muutokset vaikuttavat alkuperäisiin arvoihin.

Mikä on samanarvoisuus puhelun perusteella ja puhelun perusteella?

  • Näitä kahta menetelmää käytetään toimintojen / menetelmien kutsumiseen.

Mikä on ero puhelun perusteella ja puhelun perusteella?

Puheluarvo vs. soittoviittaus

Arvon mukaan, kopioiden muuttujat siirretään funktioon, joten toiminnon sisällä tehdyt muutokset eivät muuta alkuperäistä arvoa. Viitekutsussa muuttujien osoite välitetään funktiolle, joten toiminnon sisällä oleville muuttujille tehdyt muutokset muuttavat alkuperäistä arvoa.
 Arvonmuutos
Soitetun arvon mukaan alkuperäinen arvo ei muutu. Soitettaessa referenssinä alkuperäiset arvot muuttuvat.

Yhteenveto - Puhelu arvon mukaan tai puhelun viite

Soita arvon mukaan ja soita viittauksilla ovat menetelmiä kutsumiseen funktioon. Ero puheluarvon ja referenssipuhelun välillä on, että arvoltaan kutsussa muuttujien kopiot siirretään funktiolle ja kutsussa referenssinä, muuttujien osoitteet siirretään funktiolle. Puhelun arvon tai puhelun viittauksen käyttäminen riippuu suoritettavasta tehtävästä.

Lataa PDF-versio Call by Value vs. Call -sovelluksesta

Voit ladata tämän artikkelin PDF-version ja käyttää sitä offline-tarkoituksiin lainaushuomautuksen mukaisesti. Lataa PDF-versio tästä Ero puhelun perusteella ja puhelun perusteella

Viite:

1.Jaiswal, Haresh. “11 puhelun perusteella tai puhelun perusteella.” YouTube, YouTube, 24. joulukuuta 2015. Saatavilla täällä