Отправляет email-рассылки с помощью сервиса Sendsay

Delphi. Уроки

  Все выпуски  

Delphi. Уроки


Информационный Канал Subscribe.Ru

Уроки по Delphi. Рассылки сайта progs.biz  
Начало > Delphi > Pascal > Урок 21

Фленов М. Программирование в Delphi глазами хакера.
Фленов М. Программирование в Delphi глазами хакера.
Заказать на Озоне


Полные версии уроков (с картинками): урок 21.

Delphi. Pascal
Урок 21. Указатели

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

Указатели бывают типизированные и нетипизированные. Типизированные указатели содержат адрес переменной определенного типа. Так, например, типизированный указатель целого типа естественно содержит адрес переменной типа Integer.

Для объявления типизированного указателя мы должны перед названием типа добавить знак ^. Если вы программировали на C/C++, то этот знак - это аналог звездочки. В такой указатель можно записать адрес некоторой другой переменной, для чего перед именем этой другой перемнной надо поставить значок взятия адреса @.

По указателю мы можем получить как адрес другой переменной (указатель именно его и содержит) и значение переменной, на которую указатель показывает. Для получения значения переменной, на которую показывает указатель, мы используем разыменование указателя. Обратите внимание, что, в отличие от C/C++ для разименования указателя мы ставим значок ^ после имени указателя (а не перед, как в C/C++).

Вот пример использования указателя:

program Project1;

{$APPTYPE CONSOLE}


uses
  SysUtils;
var
  n: Integer; // Объявляем целое.
  p: ^Integer; // Объявляем указатель на целое.
begin
  { TODO -oUser -cConsole Main : Insert code here }

  // Инициализируем n.
  n:= 22;
  // Записываем в указатель p адрес переменной n.
  p:=@n;
  // Выводим разыменованный указатель (т. е. n).
  Writeln('^p=', p^);
  // Записываем в разыменованный указатель (т. е. n) 120.
  p^ := 120;
  // Выводим на экран n.
  Writeln('n=', n);

  Readln; //Ожидаем, пока пользователь нажмет Enter
end.

Результатом будет 2 строки: ^p=22 и n=120.

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

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX new!
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
2002-2004 сайт progs.biz
2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphilessons
Отписаться

В избранное