Delphi字符串、PChar与字符数组之间的转换

Delphi字符串、PChar与字符数组之间的转换
设有以下三个变量:
var
s:string;
p:pchar;
a:array[1..20] of char;
那么三者之间的转换如下:
1、字符串到PChar
    p:=PChar(s);
2、PChar到字符串
    s:=p;
3、PChar到字符数组
    StrCopy(@a ,p);
4、字符数组到PChar
    PChar(@a);
5、字符串与字符数组之间的转换就只有通过PChar来中转了。例如下面这个例子:
procedure TForm1.btn1Click(Sender: TObject);
var
str:array[1..10] of char;
begin
StrCopy(@str ,PChar(mmo1.Text));
mmo2.Text:=PChar(@str);
end;

 

var
  c :string;
  d :pchar;
  e :^char;
  f :pchar;
  g,g1:Pchar;
  h :^char;
  i:integer;
begin
 setlength(c,10);
for i:= 1 to 2 do
  begin
   c[i] := 'a';
  end;

  f := @c[1]; //内容
  g := @c; //地址
  g1 :=pchar(c); //内容,同d一样
  e := @c[1]; //内容首地址
  d := @c[1]; //内容
  h := @c;
  showmessage(f); //aa
  showmessage(g); //把g赋值的是指针地址,显示当然是乱码了,可以改为一下句,显示内容
  showmessage(g1);
  showmessage(e^); //a
  showmessage(d); //aa
  showmessage(d^); //a
  // showmessage(h); //错误 h,e是指针 不能按字符显示showmessage(IntToStr(integer(h)));
  // showmessage(e); //错误
  showmessage(c); //aa

end;

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值