Työskentely C ++: n kanssa ei ole vaikea tehtävä, jos sinulla on jo tausta C: ssä, koska molemmat jakavat tonnia käsitteitä keskenään. Mutta C ++: lla on joitain käsitteitä, jotka eivät ole osa C-paradigmaa. Tässä C ++ -artikkelin referenssipyynnössä puhumme yhdestä sellaisesta käsitteestä, joka on referenssimuuttujat ja sen sovellukset seuraavassa järjestyksessä:
- Viitemuuttujat
- Soita arvon mukaan ja soita viitteenä C ++: ssa
- Paluu viitteenä muodossa C ++
- Soita viitteellä Vs Pointer
Viitemuuttujat
C ++ antaa meille uuden tyyppisen muuttujan eli vertailumuuttujan. Voimme ajatella viitemuuttujaa alkuperäisen muuttujamme lempinimeksi. Se on referenssimuuttujan tarkka toiminnallisuus yhdellä rivillä.
Esimerkiksi, jos nimesi on Harrison, mutta kotona, perheenjäsenesi kutsuvat sinua Harryksi. Käydään nyt läpi muutamia viitemuuttujien yksityiskohtia. Tämän tyyppisten muuttujien ilmoittaminen ja käyttö eroavat tavallisista muuttujista, mutta ovat hyvin samanlaisia kuin osoitinmuuttujat.
Syntaksi:
int Hei = 1 int * ptr int & Maailma = Hei
Kun luomme muuttujan 'Hello', joka sisältää arvon '1', muistisegmenttiä käytetään arvon '1' haavoittamiseen, tämän segmentin nimi on 'Hello' ja tämän segmentin osoite on esimerkiksi hex-arvo.0x64. kun kirjoitammeint& Maailma = Hei
Luodaan muuttuja 'maailma', joka osoittaa kohti samaa muistipaikkaa.
Rivi World ++ mukaan lukien muuttaa osoitetta 0x64, mikä tarkoittaa, että myös muuttujan ”Hello” arvo muuttuu. Jotkut saattavat huomauttaa, kuinka ovat viitemuuttujat, jotka eroavat osoittimen muuttujista, joista keskustelemme tämän viestin jälkimmäisessä osassa.
Soita arvon mukaan ja soita viitteenä C ++: ssa
Soita arvon mukaan: Call by Value on laajalti käytetty menetelmä. Useimmiten käytät kutsu arvo -menetelmää, koska et halua muuttujien alkuperäisten arvojen muuttumista. Siksi käytimme kutsua arvon mukaan -menetelmää funktion kutsumiseen, vain muuttujien arvot välitetään. Tämä saavutetaan luomalla muistiin muuttujia.
#include käyttämällä nimitilaa std void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<Yllä olevasta kuvasta voimme nähdä, että heti kun kutsumme add () -funktiota, x- ja y-muuttujien arvot kopioidaan muuttujiin a ja b. A ja b ovat nuken muuttujia.
Soita viitteellä: Puhutaan nyt puheesta vertailumenetelmällä. Tässä menetelmässä erillisiä nuken muuttujia ei luoda, viittaus jo olemassa olevaan muuttujaan siirretään menetelmään. Tämä viite viittaa samaan muistipaikkaan, joten erillisiä kopioita ei tehdä muistista. Tärkeä huomioitava asia on, että vertailumuuttujiin tehdyt muutokset heijastuvat nuken muuttujaan.
#include nimitilan käyttäminen std void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {jos (aKuten voimme nähdä, että yllä oleva funktio näyttää erilaiselta kuin normaalit funktiot, koska palautustyyppi on 'int &'. Tämä toiminto palauttaa viitteen a tai b tilasta riippuen. Tärkeä seikka tässä on, että arvotei palauteta.
Jos kutsumme funktiota min (x, y) = 10. 10 osoitetaan x: lle, jos se on pienin, tai y: lle, jos y on pienin.
Soita viitteellä Vs Pointer
Kaikissa esimerkeissämme näimme, että olemme aina määrittäneet arvon luomallemme viitemuuttujalle, koska viitemuuttujat eivät voi olla NULL, kun taas osoitinmuuttujat voivat olla NULL ja voivat aiheuttaa odottamattomia virheitä.
Viitemuuttujia ei voida määrittää uudelleen, kun taas osoitinmuuttujat voivat osoittaa johonkin toiseen muuttujaan myöhemmin ohjelmassa.
Osoitinmuuttuja pitää sisällään tietyn muuttujan osoite-arvon, kun taas viitemuuttujan osoite on sama kuin muuttujan, johon se viittaa.
java jäsennä merkkijono tähän mennessäTämän avulla olemme päättäneet tämän C ++ -artikkelissa olevan kutsupyynnön. Toivon, että sait käsityksen puhelun erilaisesta toteutuksesta arvon ja viitteen mukaan ja siitä, miten ne molemmat eroavat toisistaan.
Jos haluat oppia lisää, tutustu Edureka, luotettava verkko-oppimisyritys. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia Java-kehyksiä, kuten Hibernate & Spring.
Onko sinulla kysymys meille? Mainitse se tämän blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.