Ero osoittimen ja referenssin välillä
Kirjoittaja:
Laura McKinney
Luomispäivä:
1 Huhtikuu 2021
Päivityspäivä:
11 Saattaa 2024
Sisältö
”Osoitinta” ja “viitettä” käytetään kumpikin toisen osoittimen osoittamiseen tai viittaamiseen. Mutta perimmäinen ero molempien välillä on, että osoittimen muuttuja osoittaa muuttujaan, jonka muistipaikka on tallennettu siihen. Viitemuuttuja on sille osoitetun muuttujan alias. Alla olevassa vertailutaulukossa tutkitaan muita osoittimen ja referenssin välisiä eroja.
- Vertailutaulukko
- Määritelmä
- Keskeiset erot
- johtopäätös
Vertailutaulukko
Vertailun perusteet | Osoitin | Viite |
---|---|---|
perustiedot | Osoitin on muuttujan muistiosoite. | Viite on muuttujan alias. |
tuotto | Osoittimen muuttuja palauttaa osoittomuuttujaan tallennetussa osoitteessa olevan arvon, jota edeltää osoittimen merkki *. | Viitemuuttuja palauttaa muuttujan osoitteen, jota edeltää viittausmerkki &. |
operaattorit | *, -> | & |
Nollaviittaus | Osoitinmuuttuja voi viitata NULL-arvoon. | Viitemuuttuja ei voi koskaan viitata NULL: iin. |
alustus | Alustamaton osoitin voidaan luoda. | Alustamatonta referenssiä ei voida koskaan luoda. |
Alustuksen aika | Osoittimen muuttuja voidaan alustaa milloin tahansa ohjelman vaiheessa. | Viitemuuttuja voidaan alustaa vain sen luomishetkellä. |
uudelleenalustus | Osoittimen muuttuja voidaan alustaa uudelleen niin monta kertaa kuin tarvitaan. | Viitemuuttujaa ei voida koskaan alustaa uudelleen ohjelmassa. |
Määritelmä osoitin
”Osoitin” on muuttuja, jolla on toisen muuttujan muistipaikka. Osoittimen muuttujan käyttämät operaattorit ovat * ja ->. Osoitinmuuttujan ilmoitus sisältää perustiedotyypin, jota seuraa '*' -merkki ja muuttujan nimi.
kirjoita * var_name;
Ymmärrämme osoittimen esimerkin avulla.
int a = 4; int * ptr = & a; cout <taas viiteoperaattori on &.
merkintä:
Java ei tue osoittimia.
johtopäätös
Osoitinta ja referenssiä käytetään osoittamaan tai viittaamaan toiseen muuttujaan. Mutta molemmat eroavat käytöstä ja toteutuksesta.