У результаті звернення покажчик набуває значення, відповідне адресою, починаючи з якого можна розмістити дані. Значення, на яке вказує покажчик, тобто власне дані, розміщені в купі, позначаються значком ^, який ставиться відразу за покажчиком. Якщо за покажчиком немає значка ^, то мається на увазі адреса, за якою розміщені дані. Має сенс ще раз задуматися над щойно сказаним: значенням будь-якого покажчика є адреса, а щоб вказати, що мова йде не про адресу, а про тих даних, які розміщені за цією адресою, за покажчиком ставиться ^ (інколи про це говорять як про разименованія покажчика).
Динамічно розміщені дані можна використовувати в будь-якому місці програми, де це припустимо для констант і змінних відповідного типу
Динамічну пам'ять можна не тільки забирати з купи, а й повертати назад. Для цього використовується процедура Dispose. Наприклад, оператори
Dispose (pJ);
Dispose (pR);
повернуть у купу пам'ять, яка раніше була закріплена за покажчиками pJ і pR (див. вище).
Зауважу, що процедура Dispose (pPtr) не змінює значення покажчика pPtr, а лише повертає в купу пам'ять, раніше пов'язану з цим покажчиком. Однак повторне застосування процедури до вільного вказівником призведе до виникнення помилки періоду виконання. Звільнився покажчик програміст може помітити зарезервованим словом nil.
В
1.5 Псевдоніми типів
Для будь-якого типу можна оголосити скільки завгодно псевдонімів. Наприклад:
type
TMyInteger = Integer;
Надалі псевдонім можна використовувати так само, як і базовий тип:
var
Mylnt: TMyInteger;
begin
Mylnt: = 2 * Round (pi);
end;
Такого роду псевдоніми зазвичай використовуються для підвищення наочності коду програми. Однак у Object Pascal можна оголошувати суворо типізовані псевдоніми додаванням зарезервованого слова type перед ім'ям базового типу:
type
TMyIntegerType = type Integer;
var
MylntVar: TMyIntegerType;
З точки зору компілятора, типізовані псевдоніми сумісні з базовим типом у різного роду виразах, але фактично вони оголошують новий тип даних, тому їх не можна використовувати в якості формальних параметрів звернення до підпрограм замість базового типу. Якщо, наприклад, оголошена процедура
function MylntFunc (APar: integer): Integer;
begin
end;
то таке звернення до неї
MylntFunc (MylntVar)
буде розцінено компілятором як помилкове.
Строго типізовані псевдоніми змушують компілятор виробляти інформацію про тип для етапу прогону програми (RTTI - Run-Time Type Information). Ця інформація зазвичай використовується середовищем Delphi для забезпечення функціонування різного роду редакторів.