procedure TForm1.Button1OnClick(Sender:TObject);
var
p:pchar;
str:string;
begin
p:='hello';
str:=string(p);
p[0]:='q';
ShowMessage(str+':'+p);
end;连按两次按钮显示的值不一样
var
p:pchar;
str:string;
begin
p:='hello';
str:=string(p);
p[0]:='q';
ShowMessage(str+':'+p);
end;连按两次按钮显示的值不一样
按你的程序的写法,p[1]是'h',p[2]是'e',p[3]是'l',......这些是可以改的
P := 'hello';
P是没分配内存的野指针,是不是这样说的来的,忘了。
它是ReadOnly的。
如果写成:
S := 'hello';
P := PChar(S);
P[0] := 'p';就可以。那谁“浦石”,他说的,我不记得那名词叫什么来了,你或者到CSDN“技术”文章那里找找,有这方面的介绍。