Erinevus osuti ja võrdluse vahel
Autor:
Laura McKinney
Loomise Kuupäev:
1 Aprill 2021
Värskenduse Kuupäev:
17 Mai 2024
Sisu
Mõnda „osutit” ja „viidet” kasutatakse mõne muu muutuja osutamiseks või viitamiseks. Kuid nende kahe põhierinevus seisneb selles, et osuti muutuja osutab muutujale, mille mälu asukoht selles on salvestatud. Etalonmuutuja on sellele määratud muutuja varjunimi. Allolev võrdlustabel uurib osuti ja viite muid erinevusi.
- Võrdlusdiagramm
- Definitsioon
- Peamised erinevused
- Järeldus
Võrdlusdiagramm
Võrdluse alus | Pointer | Viide |
---|---|---|
Põhiline | Kursor on muutuja mäluaadress. | Viide on muutuja varjunimi. |
Tagastab | Osuti muutuja tagastab kursori muutujasse salvestatud aadressil asuva väärtuse, millele eelneb osuti märk *. | Võrdlusmuutuja tagastab muutuja aadressi, millele eelneb viitenumber &. |
Operaatorid | *, -> | & |
Nullviide | Osuti muutuja võib viidata numbrile NULL. | Võrdlusmuutuja ei saa kunagi viidata NULLile. |
Initsialiseerimine | Võib luua initsialiseerimata osuti. | Algatamata viidet ei saa kunagi luua. |
Alustamise aeg | Osuti muutuja saab lähtestada igal ajahetkel programmis. | Võrdlusmuutuja saab lähtestada alles selle loomise ajal. |
Reinialiseerimine | Osuti muutujat saab uuesti initsialiseerida nii mitu korda kui vaja. | Viitemuutujat ei saa kunagi programmis uuesti algatada. |
Osuti määratlus
„Pointer” on muutuja, mis hoiab teise muutuja mälu asukohta. Kursori muutuja poolt kasutatavad operaatorid on * ja ->. Osuti muutuja deklaratsioon sisaldab põhiandmete tüüpi, millele järgneb märk * ja muutuja nimi.
tüüp * var_name;
Mõistagem kursorit näite abil.
int a = 4; int * ptr = & a; cout <arvestades, et võrdlusoperaator on &.
Märge:
Java ei toeta viiteid.
Järeldus
Mõnda kursorit ja viidet kasutatakse mõne muu muutuja osutamiseks või viitamiseks. Kuid mõlemad erinevad nende kasutamise ja rakendamise osas.