Использование операции @ для переменной
Использование операции @ для обычной переменной (не парамет- ра) не вызывает никаких сложностей. Применение @ к ссылке на пе- ременную возвращает указатель на переменную. Введем описания:
type TwoChar = array[0..1] of char; var Int: integer; TwoCharPtr: ^TwoChar;
тогда оператор:
TwoCharPtr := @Int;
приводит к тому, что TwoCharPtr для получения ссылки на TwoCharPtr^ становится повторной интерпретацией значения Int, как если бы оно было символьным массивом array[0..1].
Тип получаемого в результате указатель управляется директи- вой компилятора $T: в состоянии {$T-} (по умолчанию) типом ре- зультата будет Pointer. Другими словами, результат ом является нетипизированный указатель, совместимый со всеми другими типами указателей. В состоянии {$T+} типом результата будет ^T, где T - тип ссылки на переменную. То есть тип результата будет совместим со всеми другими указателями на тип этой переменной.
Примечание: К использованию операции @ с процедурным типом применяются специальные правила. См. ниже раздел "Процедурный типы в выражениях".