Препоръчано, 2024

Избор На Редактора

Разлика между показалеца и препратката

И двата указателя се използват за посочване или препращане на друга променлива. Но основната разлика между тях е, че показалеца на променлива сочи към променлива, чиято памет се съхранява в нея. Референтната променлива е псевдоним за променлива, която е присвоена на нея. Сравнителната таблица по-долу разглежда другите разлики между показалеца и препратката.

Сравнителна таблица

Основа за сравнениепоказалкапрепратка
ОсновенПоказалецът е адресът на паметта на променлива.Позоваването е псевдоним за променлива.
Се завръщаПроменливата на показалеца връща стойността, разположена в адреса, съхранявана в променлива на показалеца, предшествана от знака на показалеца '*'.Референтната променлива връща адреса на променливата, предшествана от референтния знак '&'.
Операторите*, ->&
Null ReferenceПроменливата на показалеца може да се отнася за NULL.Референтната променлива никога не може да се отнася до NULL.
ИнициализацияМоже да се създаде неинициализиран указател.Неинициализирано позоваване никога не може да бъде създадено.
Време на инициализацияПроменливата на показалеца може да се инициализира във всеки един момент от програмата.Референтната променлива може да бъде инициализирана само в момента на нейното създаване.
ReinitializationПроменливата на показалеца може да се реинициализира толкова пъти, колкото е необходимо.Референтната променлива никога не може да бъде повторно инициализирана в програмата.

Определение на показалеца

"Указател" е променлива, която съдържа паметта на друга променлива. Използваните от показалеца променливи са * и ->. Декларирането на променлива указател съдържа базовия тип данни, последван от знака '*' и името на променливата.

 въведете * var_name; 

Нека разберем показалеца с помощта на пример.

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

Тук имаме целочислена променлива a и променлива указател ptr, която съхранява адреса на променлива a.

Аритметика на показалеца

Променливата на показалеца може да се управлява с два аритметични оператора, които са "добавяне" и "изваждане". Добавянето се нарича „прираст“, ​​а изваждането се нарича „намаление“. Тъй като променливата на показалеца се увеличава, тя сочи към местоположението на паметта на следващата променлива от основния му тип. Тъй като променлива на показалеца се намалява, тя сочи към мястото на паметта на предишната променлива на основния му тип. Следователно, масивът може да бъде достъпен ефективно от променлива на показалеца.

Множество насоки

Указателят сочи към другата променлива на показалеца, която сочи към целевата стойност. Този вид указател винаги се инициализира с адреса на друга променлива на показалеца. Обявяването на показалеца на показалеца е следното.

 напишете ** var_name; 

Нека го изследваме с пример.

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

Показалец на функцията

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

Важните неща, които трябва да запомните за показалеца.

  • Променливата на показалеца може да бъде създадена без нейната инициализация и може да бъде инициализирана навсякъде в програмата.
  • Показалецът може да бъде реинициализиран в друга променлива.
  • Променливата на показалеца може да се отнася за NULL.

Дефиниция за справка

Референтната променлива се използва за отнасяне към променливата, която е присвоена на тази референтна променлива. Операторът, използван от референтната променлива, е '&'. Декларирането на референтна променлива съдържа базов тип, последван от знак „&“ и след това име на променлива.

 напишете & refer_var_name = var_ име; 

Тук типът е тип данни, операторът & потвърждава, че е референтна променлива. Името на referen_var_name е името на референтната променлива. Името на var_name е името на променливата, която искаме референтната променлива да се отнася.

Нека разберем референтната променлива с помощта на пример.

 int a = 4; int & b = a; b се отнася до ab = 6; // сега a = 6 

Тук променливата от тип int се присвоява стойност 4. Референтната променлива се присвоява на променливата a, т.е. b е псевдоним на a. Сега, когато присвоим друга стойност на b, модифицираме стойността на a. Следователно, може да се каже, че промените, направени на референтната променлива, ще се появят и в променливата, посочена от тази референтна променлива.

Най-важният момент е, че референтната променлива трябва да бъде инициализирана по време на създаването й. След като референтната променлива е инициализирана с променлива, тя не може да бъде повторно инициализирана, за да се препрати към друга променлива. В момента, в който присвоите стойност на референтна променлива, вие присвоявате тази стойност на променлива, към която посочва референтната променлива. Референтната променлива никога не може да се отнася до NULL. Аритметиката не може да се извърши с референтна променлива.

Референтната променлива може да се използва по три начина:

  • Като функция връща стойност.
  • Като функционален параметър.
  • Като самостоятелна справка.

Ключови разлики между показалеца и референцията

  1. Позоваването е като създаване на друго име, за да се препраща към променлива, така че тя да може да бъде посочена с различни имена. От друга страна, указателят е просто адрес на памет на променлива.
  2. Променлива на показалеца, ако е предхождана от '*', връща стойността на променлива, чийто адрес се съхранява в показалеца. Референтната променлива, предхождана от '&', връща адреса на тази променлива.
  3. Операторите на указатели са * и -> като има предвид, че референтният оператор е &.
  4. Променлива указател, ако не съдържа адрес на променлива, който сочи към null. От друга страна, референтната променлива никога не може да се отнася до Null.
  5. Винаги можете да създадете неинициализирана променлива на показалеца, но ние създаваме препратка, когато имаме нужда от псевдоним на някаква променлива, така че никога да не създадете unitialize refernce.
  6. Можете да реинициализирате указател, но след като инициализирате arefernce не можете да го реинициализирате отново.
  7. Можете да създадете празен указател и да го инициализирате по всяко време, но трябва да инициализирате refrence само когато създавате refernce.

Забележка:

Java не поддържа указатели.

заключение

Указателят и референцията се използват за посочване или препращане на друга променлива. Но и двете се различават по отношение на тяхното използване и изпълнение.

Top