Разлика између референције Ц ++ и поинтера

Иако се чини да је референца Ц ++ на показивач слична, постоји значајна разлика између Ц ++ Референце и Поинтер-а. Референтна варијабла може се рећи као друго име постојеће променљиве. Једном када се ова варијабла иницијализира, име променљиве може се користити за упућивање на другу променљиву. Показивачи, с друге стране, су променљиве које смештају адресу променљиве. Као и свака променљива, и ове се декларишу прво, а затим адреса било које променљиве може да се сачува у њима. Погледајмо разлике између Ц ++ Референце и Поинтер-а детаљно као ниже.

Поређење између главе Ц ++ и Поинтер (Инфограпхицс)

Испод је топ 7 разлике између Ц ++ Референце и Поинтер-а

Кључне разлике између Ц ++ Референце и Поинтер-а

И Ц ++ Референце вс Поинтер су популарни избори на тржишту; разговарајмо о неким главним разликама између референције Ц ++ и показивача:

Главна разлика између Ц ++ Референце и Поинтер-а је у томе што се једна односи на другу променљиву, док последња похрањује адресу променљиве. Упућивања не мењају оригиналну променљиву, док ако се промени показивач то утиче на оригиналну променљиву. На декларацији се мора иницијализирати референца док није неопходно иницијализирати показивач након што је декларирана. Низ показивача се може креирати док се низ референци не може креирати. Нулта вриједност се не може додијелити референци, али може се додијелити показивачу.

Ц ++ Референца вс Табела упоређивања показивача

Примарна поређења између Ц ++ референце и показивача су приказана у наставку:

Основа поређења између Ц ++ Референце и Поинтер-аЦ ++ РеференцеПоинтер
ПроменљивеУпућивање се може рећи као алиас на постојећу варијаблу. Главна употреба ове променљиве је рад као параметар који делује као пролазна референца. Ово се преноси на функцију. Функција којој је ово прослеђено ради на оригиналној варијабли уместо на копији у вредности пролаза. Промене извршене унутар функције такође ће се одразити споља.Показивачке променљиве су променљиве које похрањују адресу. За разлику од уобичајених варијабли које имамо попут инт, доубле и цхар, она чува меморијске адресе. Да би се програмирање олакшало, јавља се потреба за овом променљивом. То је променљива која може да похрани вредност одређене врсте.
ИзјаваДекларација референтне варијабле Ц ++ врши се додавањем симбола '&' испред варијабле. Када се користи с изразом, означава да ради као адреса оператера. Користи се за пружање другог имена постојећој варијабли.
Синтакса:
упишите & невНаме = постојећеНаме ;
// или
упишите & невНаме = постојећеНаме ;
// или
упишите & невНаме = постојећеНаме ;
На пример:
/ * Тест референтне декларације и иницијализација * /
#инцлуде
користећи намеспаце стд;
инт маин () (
стринг стринг = „Прииа“; // Прогласите варијаблу низа која се зове наме
стринг & рефНаме = име; // Изјавите референцу (алиас) на име променљиве
// И рефНаме и име односе се на исту вредност „Прииа“
цоут << наме << ендл; // Штампа вредност променљиве „Прииа“
цоут << рефНаме << ендл; // Исписује референтну вриједност „Прииа“
Сада промените вредност Наме
рефНаме = “Карисхма”; // Поново додијелите нову вриједност рефНаме
цоут << рефНаме << ендл;
цоут << наме << ендл; // Вредност броја такође се мења „Карисхма“
наме = „Снехал“; // Поново доделите нову вредност имену
цоут << намер << ендл;
цоут << рефНаме << ендл; // Вредност рефНаме такође мења „Снехал“
)
То значи да се вредности референтне променљиве могу мењати у оригиналу и копији променљиве.
Пре употребе показивача било где у програму требало би да се декларише унапред. Да декларише поинтер и да систем зна да је показивач варијабла је префиксирана с '*'. Показивач је праћен типом података који може бити инт или дуплик итд.
Синтакса:
тип * пнтр ; // Прогласите варијаблу поинтера под називом пнтр као поинтер типа
// или
тип * пнтр ;
// или
тип * пнтр ;
На пример:
инт * невПтр; // Прогласите варијаблу поинтера звану невПтр која упућује на инт (инт поинтер)
Овај показивач ће задржати адресу. Та адреса садржи инт вредност.
доубле * невдПтр; // Прогласите двоструким показивачем
* Означава да се показивач декларише и да не делује као оператор.
Поновно додељивањеРеферентна варијабла се не може поново доделити.
Пример:
инт к = 5;
инт и = 6;
инт & р = к;
Показивач се може поново доделити и ово својство је корисно када програмер имплементира структуре података попут повезаних листа, стабала итд.
Пример:
инт к = 5;
инт и = 6;
инт * п;
п = & к;
п = & и;
Меморијска адресаРеферентна променљива дели исту адресу као изворна променљива. Ове референце се могу прослиједити различитим функцијама, могу се похранити у различите класе итд. Референца никада не указује на нову варијаблу док се стара не избрише или не изађе изван оквира.Показивач има сопствену меморијску адресу и спрема је у стог. Показивач је независна варијабла и може себи доделити нове вредности.
Нулта вредностРеференци не може бити додељена нулту вредност.Показивач може имати директно додељену нулту вредност.
АргументиРеферентна варијабла може се навести заобилазно према вриједности. Овде се аргументи вредности преносе функцијама. Ствара се клон и шаље се функцији помоћу њега. Промјене у копији немају утјецаја на изворну варијаблу.Када желимо да променимо оригиналну копију, то се може учинити преношењем показивача објекта у функцију. То је познато као референца.
Када користитиРеференце индиректно приступају променљивој. Размотрите следећи пример:
енум дан
(
Недеља Понедељак, …
);
Ако дефинишемо променљиву
дан к;
И желимо да преоптерећимо оператера у изјави па онда можемо да напишемо као доле:
дан и оператер ++ (дан и дан)
(
д = (дан) (д + 1);
вратити д;
)
Укратко, ово се може користити у функцијским параметрима и референтним типовима.
Употреба показивача је без икакве претходне декларације.
дан * оператор ++ (дан * д);
Ово се може користити за имплементацију структура података и аритметичких операција поинтера.

Закључак - Ц ++ Референце вс Поинтер

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

Препоручени чланак

Ово је био водич за највеће разлике између Ц ++ Референце и Поинтер-а. Овде такође разматрамо кључне разлике између Ц ++ и Поинтера са инфографиком и табелу поређења. Можда ћете такође погледати следеће чланке да бисте сазнали више -

  1. Питхон вс Ц ++ разлике
  2. Перформансе Ц у односу на Ц ++ - најбоље разлике
  3. МонгоДБ вс Цассандра
  4. Мобк вс Редук
  5. Ц ++ Вецтор вс Арраи: Најбоље разлике
  6. МонгоДБ вс ДинамоДБ: Функције
  7. МонгоДБ вс СКЛ: Које су функције
  8. Ц вс Ц #: Функције

Категорија: