Рецоммендед, 2020

Избор Уредника

Разлика између показивача и референце

"Показивач" и "референца" се користе за указивање или упућивање на другу варијаблу. Али, основна разлика међу њима је да показивач променљиве указује на променљиву чија меморијска локација је у њој смештена. Референтна варијабла је алиас за варијаблу која му је додијељена. Доња табела поређења истражује остале разлике између показивача и референце.

Цомпарисон Цхарт

Басис Фор ЦомпарисонПоинтерРеференце
БасицПоказивач је меморијска адреса променљиве.Референца је алиас за варијаблу.
РетурнсПоказивач варијабле враћа вриједност смјештену на адреси похрањеној у показивачкој варијабли којој претходи знак '*'.Референтна варијабла враћа адресу варијабле којој претходи референтни знак '&'.
Оператори*, ->&
Нулл РеференцеПоказивач варијабле може се односити на НУЛЛ.Референтна варијабла се никада не може односити на НУЛЛ.
ИнитиализатионМоже се креирати неиницијализовани показивач.Неиницијализована референца се никада не може креирати.
Време иницијализацијеПоказивач варијабле може се иницијализовати у било ком тренутку у програму.Референтна варијабла може бити иницијализована само у тренутку њеног креирања.
РеинитиализацијаПоказивач варијабле може се поново иницијализирати онолико пута колико је потребно.Референтна варијабла се никада не може поново иницијализирати у програму.

Дефиниција поинтера

"Показивач" је променљива која садржи меморијску локацију друге променљиве. Оператори које користи променљива показивача је * и ->. Декларација променљиве показивача садржи основни тип података који прати знак '*' и име променљиве.

 типе * вар_наме; 

Хајде да разумемо показивач уз помоћ примера.

 инт а = 4; инт * птр = & а; цоут < 

Овде имамо целу променљиву а и променљиву показивача птр која чува адресу променљиве а.

Поинтер Аритхметиц

Показивачком варијаблом се може управљати са два аритметичка оператора који су “збрајање” и “одузимање”. Додатак се назива "инкремент", а одузимање се назива "смањење". Како се променљива показивача повећава, она показује на меморијску локацију следеће променљиве основног типа. Како се променљива показивача смањује, она указује на меморијску локацију претходне променљиве основног типа. Дакле, низу се може ефикасно приступити помоћу променљиве показивача.

Мултипле Индирецтион

Показивач показује на другу променљиву показивача која показује на циљну вредност. Ова врста показивача се увек иницијализује са адресом друге променљиве показивача. Декларација показивача на показивач је као што следи.

 типе ** вар_наме; 

Хајде да га проучимо са примером.

 инт а = 4; инт * птр1 = & а; инт ** птр2 = & птр1; цоут < 

Функцијски показивач

Као што знамо да функција није варијабла, ипак има меморијску локацију, која се може додијелити варијабли показивача. Када показивач покаже на функцију, функција се може позвати са том функцијом показивача.

Важно је запамтити о показивачу.

  • Показивач варијабле може бити креиран без његове иницијализације, и може се иницијализовати било гдје у програму.
  • Показивачка променљива се може поново иницијализовати у другу променљиву.
  • Показивач варијабле може се односити на НУЛЛ.

Дефиниција референце

Референтна варијабла се користи да се односи на варијаблу која је додијељена тој референтној варијабли. Оператор који користи референтна варијабла је '&'. Декларација референтне варијабле садржи тип базе и знак '&', а затим име променљиве.

 откуцајте & рефер_вар_наме = вар_ име; 

Овде, тип је тип података, и оператор потврђује да је референтна варијабла. Референце_вар_наме је име референтне варијабле. Вар_наме је име варијабле, коју желимо референцирану варијаблу упутити.

Хајде да разумемо референтну варијаблу уз помоћ примера.

 инт а = 4; инт & б = а; // б се односи на аб = 6; // сада а = 6 

Овдје је варијабли типа инт додијељена вриједност 4. Референтној варијабли додијељена је варијабла а, тј. Б је псеудоним а. Сада, када додељујемо другу вредност б, модификујемо вредност а. Дакле, може се рећи да ће се промјене извршене у референтној варијабли такођер појавити у варијабли коју упућује та референтна варијабла.

Најважнија ствар је да референтна варијабла мора бити иницијализована у тренутку њеног креирања. Када се референтна варијабла иницијализује са варијаблом, она се не може поновно иницијализирати да би се упутила на другу варијаблу. У тренутку када доделите вредност референтној варијабли, тој вредности доделите променљиву на коју упућује референтна варијабла. Референтна варијабла се никада не може односити на НУЛЛ. Аритметика се не може извршити на референтној варијабли.

Референтна варијабла се може користити на три начина:

  • Као функција враћа вриједност.
  • Као параметар функције.
  • Као самостална референца.

Кључне разлике између показивача и референце

  1. Референца је као креирање другог назива који се односи на варијаблу тако да се може повезати са различитим именима. Са друге стране, показивач је једноставно меморијска адреса променљиве.
  2. Показивач варијабле ако претходи '*' враћа вриједност варијабле чија је адреса похрањена у показивачу вараибле. Референтна варијабла када претходи '&' враћа адресу те променљиве.
  3. Оператори показивача су * и -> док је референтни оператор &.
  4. Показивач варијабла ако не носи адресу било које варијабле која показује на нулл. С друге стране, референтна варијабла се никада не може односити на Нулл.
  5. Увек можете креирати унитиализед променљиву показивача, али ми креирамо референцу када нам је потребан псеудоним неке променљиве тако да никада не можете креирати унитиализе рефернце.
  6. Показивач можете поново иницијализирати, али када иницијализујете арефернце не можете га поново иницијализирати.
  7. Можете креирати празан показивач и иницијализирати га у било које вријеме, али морате иницијализирати рефренце само када креирате рефернце.

Белешка:

Јава не подржава показиваче.

Закључак

И показивач и референца се користе за указивање или упућивање друге варијабле. Али оба се разликују у својој употреби и имплементацији.

Top