Rekomenduojama, 2024

Redaktoriaus Pasirinkimas

Skirtumas tarp žymeklio ir nuorodos

„Rodyklė“ ir „nuoroda“ abu yra naudojami kito kintamojo nurodymui arba nukreipimui. Tačiau pagrindinis skirtumas tarp abiejų jų yra tas, kad rodyklės kintamasis nurodo kintamąjį, kurio atminties vieta joje saugoma. Atskaitos kintamasis yra jam priskirto kintamojo pseudonimas. Toliau pateiktoje palyginimo lentelėje nagrinėjami kiti rodyklės ir nuorodos skirtumai.

Palyginimo diagrama

Palyginimo pagrindasRodyklėNuoroda
PagrindinisRodyklė yra kintamojo atminties adresas.Nuoroda yra kintamojo slapyvardis.
GrąžinaRodyklės kintamasis grąžina reikšmę, esančią rodyklės kintamajame išsaugotame adresu, prieš kurį žymimas žymeklis „*“.Atskaitos kintamasis grąžina kintamojo adresą, prieš kurį yra nuoroda „&“.
Operatoriai*, ->&
Nulinė nuorodaRodyklės kintamasis gali būti susijęs su NULL.Atskaitos kintamasis niekada negali nurodyti NULL.
InicijavimasGali būti sukurtas netinkamas rodiklis.Niekada negali būti sukurta netinkama nuoroda.
Inicializacijos laikasRodyklės kintamasis gali būti inicijuotas bet kuriuo programos momentu.Atskaitos kintamasis gali būti inicijuotas tik jo kūrimo metu.
AtnaujinimasRodyklės kintamasis gali būti pakartotinai inicijuotas tiek kartų, kiek reikia.Nuoroda kintamasis niekada negali būti pakartotinai atnaujintas programoje.

Rodyklės apibrėžimas

„Rodyklė“ yra kintamasis, turintis kito kintamojo atminties vietą. Rodyklės kintamojo naudojami operatoriai yra * ir ->. Rodyklės kintamojo deklaracijoje yra bazinių duomenų tipas, po kurio yra ženklas „*“ ir kintamojo pavadinimas.

 įveskite * var_name; 

Suprasime rodiklį pavyzdžio pagalba.

 int a = 4; int * ptr = & a; cout < 

Čia mes turime sveikojo skaičiaus kintamąjį a ir, rodiklio kintamąjį ptr, kuris saugo kintamojo a adresą.

Rodyklės aritmetika

Rodiklio kintamasis gali būti valdomas dviem aritmetiniais operatoriais, kurie yra „papildymas“ ir „atimtis“. Papildymas vadinamas „prieaugiu“, o atimtis vadinama „sumažėjimu“. Kai rodyklės kintamasis didinamas, jis nurodo kito pagrindinio tipo kintamojo atminties vietą. Kai rodyklės kintamasis sumažinamas, jis nurodo ankstesnio jo pagrindinio tipo kintamojo atminties vietą. Taigi masyvas gali būti veiksmingai pasiekiamas rodyklės kintamuoju.

Daugkartinis nukreipimas

Rodyklė nukreipia į kitą rodyklės kintamąjį, kuris nukreipia į tikslinę vertę. Šis rodiklis visada inicijuojamas kito rodyklės kintamojo adresu. Rodyklės žymeklis po žymekliu yra toks.

 tipas ** var_name; 

Ištirkime pavyzdį.

 int a = 4; int * ptr1 = & a; int ** ptr2 = & ptr1; cout < 

Funkcijų žymeklis

Kaip žinome, kad funkcija nėra kintamasis, vis dar turi atminties vietą, kurią galima priskirti rodyklės kintamajam. Kai rodyklė nukreipia į funkciją, funkcija gali būti vadinama tuo funkcijų rodikliu.

Svarbūs dalykai, kuriuos reikia prisiminti apie rodyklę.

  • Rodyklės kintamasis gali būti sukurtas be jo inicijavimo ir gali būti inicijuotas bet kurioje programos vietoje.
  • Rodyklės kintamasis gali būti pakartotinai įjungtas į kitą kintamąjį.
  • Rodyklės kintamasis gali būti susijęs su NULL.

Nuorodos apibrėžtis

Atskaitos kintamasis naudojamas nurodant kintamąjį, priskirtą tam referenciniam kintamajam. Operatorius, kurį naudoja referencinis kintamasis, yra „&“. Atskaitos kintamojo deklaracija turi bazinį tipą, po kurio yra „&“ ženklas, o po to - kintamojo pavadinimas.

 įveskite & refer_var_name = var_ pavadinimas; 

Čia tipas yra duomenų tipas, & operatorius patvirtina, kad jis yra atskaitos kintamasis. Refer_var_name yra nuorodos kintamojo pavadinimas. Var_name yra kintamojo pavadinimas, kurį norime nurodyti nuorodos kintamąjį.

Suprasime pavyzdinį kintamąjį pavyzdžiu.

 int a = 4; int & b = a; // b reiškia ab = 6; // dabar a = 6 

Čia int tipo kintamasis priskiriamas reikšme 4. Nuorodinis kintamasis priskiriamas kintamajam a, ty b yra a. Dabar, kai priskiriame kitą vertę b, mes pakeisime a reikšmę. Taigi, galima teigti, kad pokyčiai, padaryti referenciniame kintamajame, taip pat pasireikš kintamajame, nurodytame to pamatinio kintamojo.

Svarbiausias dalykas yra tas, kad pamatinis kintamasis turi būti inicijuotas jo sukūrimo metu. Kai pamatinis kintamasis inicijuojamas kintamuoju, jis negali būti pakartotinai pritaikytas kitam kintamajam. Šiuo metu, kai priskiriate reikšmę nuorodos kintamajam, tą vertę priskiriate kintamajam, kurį nurodo atskaitos kintamasis. Atskaitos kintamasis niekada negali nurodyti NULL. Aritmetika negali būti atliekama su referenciniu kintamuoju.

Nuorodos kintamasis gali būti naudojamas trimis būdais:

  • Kaip funkcijų grąžinimo reikšmė.
  • Kaip funkcijų parametras.
  • Kaip atskira nuoroda.

Pagrindiniai skirtumai tarp žymeklio ir nuorodos

  1. Nuoroda yra tarsi sukurti kitą pavadinimą, kad būtų galima nurodyti kintamąjį, kad jis būtų vadinamas skirtingais pavadinimais. Kita vertus, rodyklė yra tik kintamojo atminties adresas.
  2. Rodyklės kintamasis, prieš kurį rašomas „*“, grąžina kintamojo vertę, kurios adresas saugomas rodyklėje. Atskaitos kintamasis, prieš kurį nurodomas „&“, grąžina šio kintamojo adresą.
  3. Rodyklės operatoriai yra * ir -> kadangi atskaitos operatorius yra &.
  4. Rodyklės kintamasis, jei neturi jokio kintamojo adreso, jis nurodo nulį. Kita vertus, referencinis kintamasis niekada negali nurodyti Null.
  5. Jūs visada galite sukurti vienodą rodyklės kintamąjį, bet mes sukuriame nuorodą, kai mums reikia tam tikro kintamojo pseudonimo, kad niekada negalėtumėte sukurti vienodų nuorodų.
  6. Galite pakartotinai keisti rodyklę, bet, kai jūs inicijuojate arefernce, jūs negalite vėl ją vėl paleisti.
  7. Galite sukurti tuščią rodyklę ir inicijuoti jį bet kuriuo metu, bet jūs turite inicijuoti refrenciją tik tada, kai sukuriate nuorodą.

Pastaba:

„Java“ nepalaiko nuorodų.

Išvada

Rodyklė ir nuoroda yra naudojami kitam kintamajam nurodyti arba nukreipti. Tačiau abu jų naudojimas ir įgyvendinimas skiriasi.

Top