Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Охарактеризуйте поняття вказівника і посилання. Їх основні відмінності.






 

Змінні, значеннями яких є адреси ділянок пам’яті, називаються вказівниками. Вказівник вказує на початок області оперативної пам'яті комп'ютера, де зберігається дане. Вказівники дають змогу оперувати не з іменами даних, а безпосередньо звертатись до областей пам'яті комп'ютера

В С++ існує три види вказівників: 1)на об’єкти; 2)на функції; 3)на void.

1) Вказівник на об’єкти містить адреси ділянок пам’яті, де зберігаються значення певного типу. Формат запису наступний:

< тип> *< ім’я вказівника>

Наприклад int *a, *b; float *c, *d;

Надати значення вказівникам можна так:

< ім’я вказівника> = < адреса змінної>

Приклад. Нехай у програмі оголошені змінні

int n = 10;

float stud1, stud2, stud3;

Тоді можна визначити вказівники на ці змінні:

nomer = & n; rist = & stud1; rist = & stud3;

Вказівники застосовують, зокрема, для надання значень змінним:

rist = & stud1;

*rist = 1.85;

Тут вказівник rist вказуватимемо на адресу змінної stud1, a власне змінній stud1 буде присвоєно значення 1.85.

Вказівники можна переадресовувати. Зокрема, у прикладі вказівнику rist спочатку присвоєно адресу змінної stud1, а потім – адресу змінної stud3. Це правило не діє, якщо вказівник є сталою. Сталий вказівник, який вказує на одну і ту ж адресу, оголошують так:

const int *rik;

Для вказівників в залежності від ОС та версії компілятора резервується 2 або 4 байти в оперативній пам’яті.

2) Вказівник на функцію містить адресу в сегменті коду, за якою розташовується виконуваний код функції, тобто адресу, на яку передається керування в момент виклику функції. Вказівник на функцію використовують для опосередкованого виклику функції (не через її ім’я, а через вказівник, який містить її адресу), а також для передачі імені функції в іншу в якості параметра.

Формат запису: < тип> (*< ім’я>) (список типів, аргументів)

Наприклад int (*abc) (double, double);

3) Вказівнику на void можна присвоїти значення будь-якого вказівника і порівнювати його з довільним вказівником, але перед виконанням будь-яких дій з ділянкою пам’яті, на яку він посилається, потрібно зводити його до вказівника на конкретний тип явним чином.

Особливо ефективною є робота з вказівниками на рядки та масиви.

Посилання – це синонім імені, вказаного при ініціалізації посилання.

Формат опису < тип> & < ім’я>

Приклад. int k; int & h = k;

Посилання – це розіменований вказівник. Тобто, h – альтернативне ім’я для k. Посилання, на відміну від вказівника, не займає додаткової пам’яті і є просто іншим іменем величини. Посилання обов’язково слід присвоювати при описі.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.