Студопедия

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

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

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






Содержать адрес какой-либо переменной, называемой динамической или указанной переменной, память под которую уже выделена.






2. Содержать специальный пустой адрес nil. Среди всех возможных указателей выделяется один указатель, который «никуда не указывает». Иными словами, в адресном пространстве оперативной памяти выделяется один адрес, в котором не может быть размещена никакая переменная. На это место в памяти ссылается пустой

(или «нулевой») указатель nil.

 

3. Находиться в неопределенном состоянии. Данная

ситуация имеет место в начале работы программы до

первого присваивания указателю конкретного или пустого

адреса nil, а также после освобождения области

памяти, на которую он указывает.

 

Над указателями выполняются следующие простейшие действия:

1. Объявление ссылочной переменной

 

Туре РР = ^ integer; Var Pa, Pb: РР; P PappAS

 

 

2. Выделение области памяти. Процедура New выделяет область памяти соответственно тому типу, который описан для указателя Ра или Pb, и записывает адрес выделенной памяти в указатель.



 

New(P); New(Pb);

 

 

3. Операция взятия указателя. Для присваивания переменной ссылочного типа некоторого значения служит унарная операция взятия указателя, которая состоит из символа '@' (эт) и одного операнда - переменной любого типа. В результате работы фрагмента программы

Var

i: integer;

РР: ^ integer;

РР: = @i;

переменная РР получит в качестве своего значения указатель на переменную i или адрес переменной i.

 

4. Операция разыменования. Для реализации косвенного доступа к переменной по адресу через указатель (ссылку) на нее используется операция разыменования. Для того чтобы по указателю на переменную получить доступ к самой переменной, указанной переменной, необходимо после переменной-указателя поставить знак '^' (каре). Разыменование

 

 

В этом случае обе ссылочные переменные Ра и РЬ будут ссылаться на одну и ту же область памяти. Значение, на которое ранее ссылалась переменная Ра, будет потеряно.

 

9. Освобождение области памяти. Процедура Dispose(A) освобождает область памяти, на которую указывает ссылочная переменная А, после чего эта область памяти становится доступной для распределения под другие динамические переменные.






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