Руководство по языку B.Pascal 7

       

Использование операции @ для переменной


Использование операции @ для обычной переменной (не парамет- ра) не вызывает никаких сложностей. Применение @ к ссылке на пе- ременную возвращает указатель на переменную. Введем описания:

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 - тип ссылки на переменную. То есть тип результата будет совместим со всеми другими указателями на тип этой переменной.

Примечание: К использованию операции @ с процедурным типом применяются специальные правила. См. ниже раздел "Процедурный типы в выражениях".



Содержание раздела