Erinevus osuti ja võrdluse vahel

Autor: Laura McKinney
Loomise Kuupäev: 1 Aprill 2021
Värskenduse Kuupäev: 17 Mai 2024
Anonim
Erinevus osuti ja võrdluse vahel - Tehnoloogia
Erinevus osuti ja võrdluse vahel - Tehnoloogia

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.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusPointerViide
PõhilineKursor on muutuja mäluaadress.Viide on muutuja varjunimi.
TagastabOsuti muutuja tagastab kursori muutujasse salvestatud aadressil asuva väärtuse, millele eelneb osuti märk *.Võrdlusmuutuja tagastab muutuja aadressi, millele eelneb viitenumber &.
Operaatorid *, ->&
NullviideOsuti 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 aegOsuti muutuja saab lähtestada igal ajahetkel programmis.Võrdlusmuutuja saab lähtestada alles selle loomise ajal.
ReinialiseerimineOsuti 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 &.

  • Kui osutimuutujal puudub muutuja aadress, osutab see nullile. Teisest küljest ei saa võrdlusmuutuja kunagi viidata nullile.
  • Te saate alati luua osariigilise muutuja, kuid loome viite, kui vajame mõne muutuja varjunime, nii et te ei saa kunagi luua ühikuallikaid.
  • Võite kursori uuesti initsialiseerida, kuid pärast initsialiseerimist ei saa te seda enam uuesti initsialiseerida.
  • Saate luua tühja osuti ja selle igal ajal lähtestada, kuid viite tuleb lähtestada ainult viite loomisel.
  • 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.