关于PChar(@string)的疑惑

Posted coder-mifir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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.

 

以上是关于关于PChar(@string)的疑惑的主要内容,如果未能解决你的问题,请参考以下文章

请问delphi中pchar()是个啥函数,返回啥值?

delphi7 PChar 转为 String 弹出乱码

在delphi中,这个PChar指针的作用是啥?

Pchar string Pansichar ansistring

在.net中调用Delphi dll的Pchar转换

pchar,pwidechar,pansichar作为返回参数时内存访问错误