delphi指针类型

2024-12-21 23:16:51
推荐回答(2个)
回答1:

4个字节是因为我们现在使用的操作系统都是32位(每个字节8位)的。如果你使用64位的机器和操作系统,每个指针的大小就是8个byte了。

256个字节是因为你声明了255,但这个数字实际上表示0..255,你数一下是不是一共256个?

你举的这两个例子都是静态的,没有动态的,只不过一个用了指针,一个没有用。如果是动态的要这么写

procedure TForm1.Button1Click(Sender: TObject);
var
B3:PChar;
begin
GetMem(B3,256);
try
StrCopy(B3,'zhang');
ShowMessage(B3);
finally
FreeMem(B3);
end;
end;

回答2:

你定义的时候buffer就是255啊,你存不存字符他也是255啊 0到255 正好是256个字节没有错误啊

你要是这样定义
var
b1:string;
begin
b1:='zhang';
end;
你在看他的字节数就是 4字节了

你用指针指向这个内存地址,当然用了多大就是多大了,这个不奇怪呀!