Delphi中如何将数组转换为指针?
关于DELPHI数组,指针,字符串转换的例子:
var
aa: array [0..5] of Char;
bb:Pointer;
cc:string;
dd:PChar;
procedure TForm1.Button1Click(Sender: TObject);
begin
dd:=abcdef;
//以下是pchar内容转数组
FillChar(aa,length(dd),#0);
Move(dd^,aa,SizeOf(aa));
//以下是数组传递到指针
bb:=GetMemory(SizeOf(aa));
Move(aa,bb^,SizeOf(aa));
//以下是指针内容传递给字符串
SetLength(cc,SizeOf(aa));
Move(bb^,cc[1],SizeOf(aa));
FreeMemory(bb);//这个是释放内存
//以下是数组转pchar
dd:=;
dd:=PChar(@aa);
MessageBox(0,PChar(cc: cc),PChar(dd: dd),0);
end;
关于这个问题,在Delphi中,数组名本身就是指向数组第一个元素的指针。因此,如果要将数组转换为指针,只需要使用数组名即可。
例如,假设有一个整型数组arr,可以将其转换为指针p,如下所示:
var
arr: array[0..9] of Integer;
p: PInteger;
begin
p := @arr[0]; // 将数组转换为指针
end;