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

Кључна разлика - Поинтер против референце
 

Пре него што размотримо разлику између поинтера и референце, прво да укратко погледамо значење ова два појма. У програму подаци заузимају меморију. Точна локација меморије у коју су подаци смештени у време извршења треба да се зна како би се њима приступио. Показивачке променљиве и референтне варијабле користе се за приступ овим подацима и манипулирање меморијским адресама на којима се налазе. Односно, и показивачи и референце могу се користити за посредно позивање на објекте. Они у основи задржавају меморијске адресе као своје вредности. Тхе кључна разлика између показивача и референце је то поинтер је променљива која чува адресу меморијске локације друге променљиве док а референца је променљива која се односи на другу променљиву. Два механизма, тхе тхе поинтер и референце имају различиту синтаксу и употребу.

Шта је Поинтер?

Показивач је објект програмског језика који похрањује меморијску адресу неке вриједности у рачунарској меморији.

У синтакси Ц ++;

инт и = 5;

инт * птр = & и;

Прва линија дефинира варијаблу иницијализирану вриједношћу 5. Друга линија дефинира показивач на меморијску адресу варијабле. Овде је 'птр' деклариран као објект типа 'поинтер на инт' чија је почетна вредност адреса објекта и. У основи птр варијабла указује на и тако што чува њену меморијску адресу.

Позва се вредност добијена на меморијској локацији дереференцирање. Оператор * се користи за дереференцирање показивача. Након завршетка декларације, индиректни израз * птр дереференцес птр односи се на и.

Да бисте променили вредност и, може се користити следећи задатак;

* птр = 20;

Показивачи се могу доделити и да се односе на различите предмете.

А нулл поинтер је посебна врста показивача. Нулти показивач се често означава са 0 или нулом и не указује на ништа. Добра пракса је да користите нулти показивач у случају да нема тачну адресу која ће бити додељена показивачу. Овај задатак се може користити у логичким операцијама и условима.

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

Показивачи омогућавају и заштићени и незаштићени приступ адресираној меморији. Стога морају бити предузете потребне мере предострожности како би се потврдило да је садржај показивача валидан. У супротном, дереференцирање показивача са неважећом меморијском адресом може проузроковати пад програма.

Показивачи су подржани на језицима као што су Ц, Ц ++, Пасцал и многи скупштински језици.

Поинтер а упућује на меморијску адресу повезану са променљивом б.

Шта је референца?

Референца је једноставно алтернативни идентификатор вредности сачуване у меморији. Омогућује програму да индиректно приступи одређеној датуми.

У синтакси Ц ++;

инт и = 5;

инт & реф = и;

Први ред дефинира варијаблу иницијализирану са вриједношћу 5. Други ред декларира 'реф' као објект типа 'референца на инт' који се односи на и. Референца се разликује од самих података с обзиром на то да се референца имплементира као физичка адреса одређеног податка који се чува у меморији.

Једном када је дефинисана, референци се не може доделити нова вредност. Референца се увек односи на објект са којим је иницијализирана. У следећем задатку реф се још односи на и, али вредност је сада 20.

реф = 20;

Према горе наведеном примеру, референце за преусмеравање не захтевају ниједног оператора.

Упућивања се могу користити када се варијабла увијек односи на објект. То је зато што, за разлику од показивача, референце не могу бити нуле и морају се увек додељивати приликом иницијализације. Будући да се референце морају увијек односити на неки објект, упућивање такве варијабле осигурава да ће програм радити ефикасно и исправно. С обзиром да нема ниједне референце, ваљаност референтне варијабле не мора бити тестирана.

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

Подржани језици за програме као што су Ц ++, Јава, Питхон, Перл, ПХП, Руби итд.

Која је разлика између Поинтера и Референце?

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

Поинтер: Показивач је меморијска адреса објекта смештеног у рачунарској меморији.

Референце: Референца је алтернативни идентификатор или псеудоним за објект.

Карактеристике показивача и референце

Изјава

Поинтер: Показивач је деклариран са оператором *.

Референце: Референца је декларирана код & оператора.

Преусмјеравање

Поинтер: Промјеница поинтера захтијева да се * оператор дереференцира.

Референце: Референтна варијабла не захтијева одступање оператора.

Иницијализација

Поинтер:  Показивачи се могу иницијализирати на нулу. Такве променљиве називамо нултим показивачима.

Референце: Референце се не могу иницијализирати на нулу. Не постоји таква ствар као нулта референца. Референца се увек мора односити на објект.

Поновно додељивање

Поинтер: Варијабла показивача може се доделити поново да се односи на различите објекте.

Референце: Референтна варијабла се не може поново доделити. Увек се односи на објекат са којим је иницијализиран.

Употреба

Поинтер: Показивачке променљиве треба да се користе када постоји могућност упућивања на ништа или када је потребно у различитим временима да се односе на различите ствари.

Референце: Референтне варијабле треба користити када ће увијек постојати објект на који се може позивати и кад није потребно користити ту референтну варијаблу за упућивање на било шта друго осим на тај објект.

Примена употребе

Поинтер: Варијабле показивача могу се користити за имплементацију алгоритама и структура података.

Референце: Референтне варијабле могу се користити у функцијским параметрима, а типови повратка дефинирају корисна сучеља.

Употребљени језици:

Поинтер: Програмски језици као што су Ц, Ц ++, Пасцал и многи језици за монтажу подржавају показиваче.

Референце: Подржани језици за програме као што су Ц ++, Јава, Питхон, Перл, ПХП, Руби итд.

Љубазношћу слике: „Показивачи“ ове датотеке направио је корисник: СвенТранслатион.Осопљени рад.Ова векторска слика креирана је помоћу Инксцапе-а (ЦЦ БИ-СА 3.0) преко Цоммонса -