Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Delphi Book - сборник разных FAQ'ов >> Распространение элементов управления ActiveX и форм ActiveForm в Web. >> Простые типы данных. >> Указательные типы.

[Назад]    [Содержание ]    [Вперед]

  


Указательные типы.


Указательные типы

    Переменная указательного типа содержит значение, указывающее на переменную обычного типа ? адрес этой переменной (табл. 1.8).

    pointer   // Указатель без типа.
    ^typel    // Указатель с типом.

    Если исходный тип (тип переменной, на которую должен ссылаться указатель) еще не объявлен, его надо объявить в том же разделе объявления типов, что и тип указателя.
    Только исходный тип указателей может совпадать с собственно типом.

Таблица 1.8. Средства работы с указателями

Средство Описание
New  Распределяет новый участок динамической памяти и записывает его адрес в переменную указательного типа
Оператор @  Направляет переменную-указатель на область памяти, содержащую любую существующую переменную, процедуру или функцию, включая переменные, имеющие идентификаторы
GetMem Создает новую динамическую переменную заданного объема и записывает ее адрес в переменную указательного типа
  Указатели и адресные функции
    Информация, содержащаяся в переменной указательного типа, ? это адрес некоторого участка в машинной памяти. Эти значения задаются во время работы программы и могут меняться от одного запуска к другому. Следующие функции обеспечивают доступ к адресной информации в программе и тестирование переменных-указателей.
 
Функция Описание
Addr  Возвращает адрес указанного объекта
Assigned Проверяет, равно ли значение процедурной функции Nil
Ptr Преобразует адрес в указатель

    Зарезервированное слово Nil указывает значение указателя, который ни на что не указывает. Такие указатели называют неопределенными. В Object Pascal только при определении указателей можно нарушать правило, по которому все указываемые идентификаторы, в том числе идентификаторы типов, должны быть объявлены выше. Здесь можно указать идентификатор еще необъявленного типа, как в следующем примере:

    type
        PointerType = ^NotYetDefinedType;

    Однако необъявленный тип необходимо объявить ниже в том же блоке объявления типов.
    Определенный в Object Pascal тип Pointer? это указатель без типа. Обратиться к переменной через такой указатель невозможно (к переменной типа Pointer нельзя дописывать символ "^"). Однако можно задать ей другой указательный тип.
    По значениям переменных тип Pointer совместим с остальными указательными типами.



Совет: Во многих языках указательные типы как таковые отсутствуют. Однако в С и C++ они есть и определяются звездочкой перед типом объявляемой переменной. Указатели в C/C++ трактуются наподобие целых переменных. программисты Delphi избегают подобного манипулирования указателями.



[Назад]    [Содержание ]    [Вперед]

  


  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017