Nein, XYZ ist nur ein Zeiger auf einen "Record", wo dann die Stringdaten (Referenzzähler, Längenangabe und der Stringinhalt) drin sind.
sozusagen so:
Delphi-Quellcode:
TAnsiString = Record
RefCount: Integer;
Len: Integer;
Data: Array[1..Len+1] of AnsiChar; // +1, da noch ein #0 hinten dran ist
End;
Pointer(xyz) = @TAnsiString.Data
Du kannst es dir wie eine KlassenReferenz vorstellen.
@xyz zeigt also nur auf einen Pointer, wo drin steht an welcher Stelle sich der StringRecord befindet.
"nur" PChar(xyz) und @xyz[1] zeigen also auf den Stringinhalt.