Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Содержать адрес какой-либо переменной, называемой динамической или указанной переменной, память под которую уже выделена.
(или «нулевой») указатель nil.
ситуация имеет место в начале работы программы до первого присваивания указателю конкретного или пустого адреса nil, а также после освобождения области памяти, на которую он указывает.
Над указателями выполняются следующие простейшие действия: 1.
2. Выделение области памяти. Процедура New выделяет область памяти соответственно тому типу, который описан для указателя Ра или Pb, и записывает адрес выделенной памяти в указатель.
3. Операция взятия указателя. Для присваивания переменной ссылочного типа некоторого значения служит унарная операция взятия указателя, которая состоит из символа '@' (эт) и одного операнда - переменной любого типа. В результате работы фрагмента программы Var i: integer; РР: ^ integer; … РР: = @i; переменная РР получит в качестве своего значения указатель на переменную i или адрес переменной i.
4. Операция разыменования. Для реализации косвенного доступа к переменной по адресу через указатель (ссылку) на нее используется операция разыменования. Для того чтобы по указателю на переменную получить доступ к самой переменной, указанной переменной, необходимо после переменной-указателя поставить знак '^' (каре). Разыменование
В этом случае обе ссылочные переменные Ра и РЬ будут ссылаться на одну и ту же область памяти. Значение, на которое ранее ссылалась переменная Ра, будет потеряно.
9. Освобождение области памяти. Процедура Dispose(A) освобождает область памяти, на которую указывает ссылочная переменная А, после чего эта область памяти становится доступной для распределения под другие динамические переменные.
|