Введение в программирование. Pascal и Delphi. Гурьянов Л.В - 93 стр.

UptoLike

92
Формат:
type
<имя типа> = pointer;
<имя типа> = ^<идентификатор типа>;
Например:
type
T = pointer; {указатель не связан с определенным
типом данных}
T1 = ^integer; {указатель связан с данными целого типа}
var
{ переменные типа указатель}
ptr1: T;
ptr2: T1;
Для правильной работы с указателями очень важно четко разли-
чать
два понятия значение указателя и значение по указателю:
значение самого указателяадрес динамической памяти.
В приведенном выше примере это значение переменных ptr1,
ptr2;
значение по указателю значение данных, адрес которых
является значением указателя на эти данные. В программе оно обо-
значается:
<имя переменной типа указатель>^
Для указателей ptr1, ptr2 значения по указателю будут обозна-
чаться так:
ptr1^, ptr2^ .
Чтобы "почувствовать разницу" между значением указателя и
значением данных, адресуемых этим указателем, рассмотрим сле-
дующую схему (рисунок 6.1).
На рисунке 6.1:
после выполнения операции ptrY:= ptrX изменяется значение
указателя
ptrY и доступ к данным по предыдущему значению этого
указателя потерян (данные превращаются в "мусор")!
   Формат:
   type
   <имя типа> = pointer;
   <имя типа> = ^<идентификатор типа>;
   Например:
   type
       T = pointer; {указатель не связан с определенным
                     типом данных}
       T1 = ^integer; {указатель связан с данными целого типа}
   var
      { переменные типа указатель}
      ptr1: T;
      ptr2: T1;

   Для правильной работы с указателями очень важно четко разли-
чать два понятия значение указателя и значение по указателю:
   • значение самого указателя – адрес динамической памяти.
   В приведенном выше примере это значение переменных ptr1,
ptr2;
   • значение по указателю – значение данных, адрес которых
является значением указателя на эти данные. В программе оно обо-
значается: <имя переменной типа указатель>^
   Для указателей ptr1, ptr2 значения по указателю будут обозна-
чаться так: ptr1^, ptr2^ .
   Чтобы "почувствовать разницу" между значением указателя и
значением данных, адресуемых этим указателем, рассмотрим сле-
дующую схему (рисунок 6.1).
   На рисунке 6.1:
   ƒ после выполнения операции ptrY:= ptrX изменяется значение
указателя ptrY и доступ к данным по предыдущему значению этого
указателя потерян (данные превращаются в "мусор")!



                               92