Мегаобучалка Главная | О нас | Обратная связь


Операции над указателями



2015-12-14 593 Обсуждений (0)
Операции над указателями 0.00 из 5.00 0 оценок




 

Над значениями указателей возможны следующие операции.

Присваивание. При выполнении этой операции указателю присваивает­ся значение другого указателя или nil. Допускается присваивать указателю только значение того же или неопределенного типа.

Например:

Получение адреса. Это унарная операция, которая строится из знака операции - символа @ (коммерческое а) и одного операнда - переменной любого типа. Результат операции - указатель типа pointer, который можно присвоить любому указателю.

Например:

 

Доступ к данным по указателю (операция разыменования). Чтобы по­лучить доступ к переменной по указателю, необходимо после переменной -типизированного указателя поставить знак «^». Полученное значение имеет тип, совпадающий с базовым типом указателя.

Нетипизированные указатели разыменовывать нельзя.

Например:

В табл. 7.1 показано, как выполняются операции с указателями.

 

 
 

 

Операции отношения. Из всех возможных операций отношения допус­каются только операции проверки равенства (=) и неравенства (< >). Эти операции проверяют соответственно равенство и неравенство адресов.

На­пример:

или

Поскольку в качестве базового типа типизированного указателя может быть использован любой тип, допустимо определять «указатель на указа­тель». Например, если переменную ррi описать и инициализировать следую­щим образом:

 

то будет реализована схема, изображенная на рис. 7.5.

Для получения значения переменной i не­обходимо дважды применить операцию разы­менования. В нашем случае ppi^^ имеет тип integer и равно 1.

 

Процедуры и функции, работающие с указателями.

 

Для работы с указателями в Паскале предусмотрены стандартные функции, облегчающие и упрощающие выполнение часто встречающихся операций.

1. Функция ADDR(x): pointer - возвращает адрес объекта х, в качестве которого может быть указано имя переменной, функции, процедуры. Выпол­няет те же действия, что и операция «@».

2. Функция SEG(x): word - возвращает сегментный адрес указанного объекта.

3. Функция OFS(x): word - возвращает смещение указанного объекта.

4. Функция CSEG: word - возвращает текущее значение сегментного регистра CS - сегментный адрес сегмента кодов.

5. Функция DSEG: word - возвращает текущее значение сегментного регистра DS - сегментный адрес сегмента данных.

6. Функция PTR(seg,ofs:word):pointer - возвращает значение указателя по заданным сегментному адресу seg и смещению ofs.

Лекция №10 Динамические структуры данных

План



2015-12-14 593 Обсуждений (0)
Операции над указателями 0.00 из 5.00 0 оценок









Обсуждение в статье: Операции над указателями

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (593)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)