Воскресенье, 01.12.2024, 11:20
Приветствую Вас, Гость |
Меню сайта
Наш опрос
Нужен ли форум на этом сайте?
Всего ответов: 1313
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0

Указатели в паскале

Различают два типа указателей в Паскал:
     типизированные
     нетипизированные.

Типизированные указатели содержат адреса, по которым в памяти размещаются данные определенных типов. Используя эти указатели с данными указанных типов, можно выполнять операции, предусмотренные базовым типом.

Нетипизированные указатели хранят просто адреса, которые не связаны с данными конкретных типов, т.е. они могут хранить адрес переменной любого типа.

При описании типизированного указателя в Паскале необходимо сообщить компилятору, адреса переменных какого типа он может хранить:

    var <имя указателя>: ^ <тип адресуемой переменной>;

Описание нетипизированного указателя в Паскале:

   var <имя указателя>: ^ pointer;

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

Объявление:

   var pC: ^char;    // адрес символа
       pI: ^integer; // адрес целой переменнойp
       R
: ^real;    // адрес вещ. переменной
      
s:  ^array[1..10] of byte;
      
p:  pointer;  // нетипизиров. указатель

Указатели – единственное исключение из общего правила, согласно которому все ресурсы перед использованием должны быть описаны.Для них допускаются описания вида:

     Туре  рр = ^реrsоn;  { тип person еще не определен! }
           
ре
rsоn = record   { определение типа person }
                       
name: string:
                       
next: рр;

           
end;


     Type

           
{ правильные объявления типов}
       
P1=^word;               { указатель  на данные типа word }
       
P2=^char;                { указатель на данные типа char }
       
P4=array[1..10] of ^real;


{указатель на массив указателей, ссылающихся на данные типа real}Для указателей, которые не хранят никаких адресов, введена константа «нулевой адрес» с именем nil.Константу nil можно присваивать указателю любого типа.

   var m: integer;    // целая переменная
     
pI: ^integer;  // указатель
         
A: array[1..2] of integer; // массив
          ...

          pI
:= @ m;    // адрес переменной m
          pI
:= @ A[1]; // адрес элемента массива A[1]
          pI
:= nil;   // нулевой адрес

 

Форма входа
Поиск
Мы в сети
Реклама
Для того чтобы не видеть рекламу в правом верхнем углу сайта пройдите простую процедуру регистрации
ФОРУМ
У нас наконецто появился форум! Добро пожаловать! Будьте первыми, задайте направление форуму! =)
--- Не стесняемся - заходим на форум! ---