Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Программирование -> Delphi/Pascal -> Учебник по Delphi


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

        Переменная указательного типа содержит значение, указывающее на переменную обычного типа - адрес этой переменной (табл. 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 избегают подобного манипулирования указателями.
    Оглавление


 

 
Интересное в сети

компьютерный сервис www.terabit.spb.ru/home/computer-services.html

 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.