1. Присваивание: указателю присваивается значение другого указателя или nil. Допускается присваивать указателю только значения того же или неопределенного типа. Nil – это зарезервированная константа, обозначающую пустую ссылку, т.е. ссылку, которая ни на что не указывает. Константу nil можно присваивать указателю с любым базовым типом.
Например:
Допустимые операции: p1:=p2; p:=p3; p1:=p; p1:=nil; p:=nil;
Недопустимые операции: p1:=p3; p3:=p2; p4:=p3;
2. Получение адреса - @: унарная операция. Результат операции – указатель типа point, который можно присвоить любому указателю. Также используется функция addr.
Var i:integer;
Pi:^integer; …
Pi:=@i; {или Pi:=addr(i); указатель pi будет содержать адрес переменной i}
3.Операции сравнения на равенство и неравенство, например:
if P1=P2 then …
if P1<>P2 then …
4. Доступ к данным по указателю (операция разыменования, разадресации): позволяет получить доступ к значению переменной через указатель. Полученное значение должно иметь тип, совпадающий с типом указателя. Нетипизированные указатели разыменовывать нельзя.
Например:
P1^:=5; P1^:=P1^+2; inc(P1^); writeln(P1^);{на экране появится число 8}
В Паскале, в отличие от других языков, запрещаются любые арифметические операции с указателями, их ввод-вывод и сравнение на больше-меньше.