In the {$T+} or {$TYPEDADDRESS ON} state, the @ operator, when applied to a variable, returns a result of type ^T, if the type of the variable is T. In the {$T-} state, the result is always an untyped pointer, which is assignment compatible with all other pointer types.
For example, the following code will not compile:
The compiler will give a type mismatch error:
By default however, the address operator returns an untyped pointer.