delphi中pchar和^char的区别

在delphi中一直以为pchar和^char没有太大区别但使用总是糊涂的,进行测试,不管方法对不对,但发现测试结果他们是有区别的,能通过例子详细解释么?varc:str... 在delphi中 一直以为pchar 和 ^char没有太大区别 但使用总是糊涂的,进行测试,不管方法对不对,但发现测试结果他们是有区别的,能通过例子详细解释么?var c :string; d :pchar; e :^char; f :pchar; g :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; //门牌号 e := @c[1]; //仓库 d := @c[1]; //仓库内容 h := @c; showmessage(f); //aa showmessage(g); //乱码 showmessage(e^); //a showmessage(d); //aa showmessage(d^); //a // showmessage(h); //错误 // showmessage(e); //错误 showmessage(c); //aa end;procedure TForm1.Button3Click(Sender: TObject);varP: PChar;S1, S2: string;beginS1 := '1234567ABCDE'; S2 := S1;P := PChar(S1); ShowMessage(IntToStr(SizeOf(S1))); //获得 S1 变量的大小 ShowMessage(IntToStr(integer(S1))); //获得 S1 指向的字符串的指针地址ShowMessage(IntToStr(integer(P))); //获得 P 指向的字符串的指针地址ShowMessage(IntToStr(integer(S2))); //获得 S2 指向的字符串的指针地址S1 := P; ShowMessage(IntToStr(integer(S1)));ShowMessage(IntToStr(integer(P)));ShowMessage(IntToStr(integer(S2)));end; 展开
 我来答
简苇唐雅爱
2020-02-27 · TA获得超过3654个赞
知道大有可为答主
回答量:3063
采纳率:26%
帮助的人:443万
展开全部
pchar:类型是一个指向空字符结束的字符串
^char:是一个字符指针。是个指针,里面的内容是字符。
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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式