Operátor adresy @ vracia adresu premennej procedúry alebo funkcie. Používa sa nasledovne:
--operátor adresa- @ -----|-------referencia premennej---------|------------------------
|-----identifikátor procedúry--------|
|------identifikátor funkcie---------|
|-kvalifikovaný identifikátor metódy-|
Operátor @ vracia typový smerník ak je zapnutý prepínač $T. Ak je prepínač $T vypnutý, potom operátor adresy vracia smerník bez typu, ktorý je možné priradiť do akéhokoľvek typového smerníka. Typ smerníka je ^T, pričom T je typ referencie premennej. V takom prípade sa nasledujúci príklad preloží
Program tcast; {$T-} { @ vracia smerník bez typu } Type art = Array[1..100] of byte; Var Schranka : longint; PVelkaSchranka : ^art; begin PVelkaSchranka := @Schranka; end.
Ak zmeníme {$T-} na {$T+} prekladač program nepreloží, a zobrazí chybu nesúlad typov (type mismatch).
V predvolenom stave operátor adresy vracia smerník bez typu – pri použití operátora adresa na identifikátor funkcie, metódy alebo procedúry, získame smerník na vstupný bod danej funkcie. Výsledkom je smerník bez typu.
To znamená, že nasledujúci program bude fungovať:
Procedure MojaProcedúra; begin end; Var P : PChar; begin P:=@MyProc; end;
V predvolenom stave sa operátor adresy musí priradiť do premennej procedurálneho typu. Tomuto správaniu môžeme zabrániť pomocou prepínačov -Mtp alebo -MDelphi, ktoré vedú k väčšej kompatibilite so syntaxou Delphi a Turbo Pascal.