关于PChar(@string)的疑惑

看到一篇博客关于讲Delphi中MOVE的例子,心生疑惑。记录下自己的实验,虽然我也不知道这是啥。。。

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  sCode: string = 'ABC';
  p_code:PChar;
begin
   Writeln(Cardinal(@sCode),#13);    //输出变量sCode地址
   Writeln(Cardinal(PChar(@sCode)),#13);            //将变量sCode的地址转成PChar型的指针后输出
   p_code:=PChar(sCode);       //将变量sCode转成以#0结尾的字符数组指针
   Writeln(Cardinal(@(p_code)),#13);      //输出'ABC'实际数据地址

   Writeln(Cardinal(@(p_code[0])),#13);  //输出sCode中'A'的地址
   Writeln(Cardinal(@(p_code[1])),#13);  //输出sCode中'B'的地址

   Writeln(PChar(@(p_code[0]))^,#13);  //输出sCode中'A'
   Writeln(p_code[1],#13);  //输出sCode中'B'
   Writeln(p_code,#13);  //输出sCode
  Readln;
end.
原文地址:https://www.cnblogs.com/Master-Qi/p/9778928.html