16,748
社区成员
发帖
与我相关
我的任务
分享
type
TArr = array of char;
PTArr = ^TArr;
var
A: array[0..15] of char;
Arr: TArr;
PArr: PTArr;
procedure TForm1.Button1Click(Sender: TObject);
begin
PArr := @Arr;
ShowmessageFmt('Arr位于%x,Arr指向%x,PArr位于%x,PArr指向%x,PArr^指向%x,@A位于%x',[Integer(@Arr), Integer(Arr), Integer(@PArr), Integer(PArr), Integer(PArr^), Integer(@A)]);
Arr := @A;
ShowmessageFmt('Arr位于%x,Arr指向%x,PArr位于%x,PArr指向%x,PArr^指向%x,@A位于%x',[Integer(@Arr), Integer(Arr), Integer(@PArr), Integer(PArr), Integer(PArr^), Integer(@A)]);
CopyMemory(@A[3], @'test'#0[1], 5);
Showmessage(StrPas(@A[3]));
Showmessage(StrPas(@Arr[3]));
Showmessage(StrPas(Pointer(Integer(PArr^)+3)));
end;
type
TArray = array of char;
PArray = ^TArray;
var
ar:array[0..15] of char;
implementation
var
my_array:TArray;
i:integer;
my_Parray:PArray;
my_array :=@a;
my_Parray :=@my_array;
for i := 0 to 14 do
begin
a[i] := 'b';
end;
a[15] := Char(63);
my_array[0]:='a'; //这一句 为什么是my_array[0]而不是my_array^[0]呢
my_Parray^[0]:='a'; //这样就可以使用my_Parray^[0]了,注意my_Parray和my_array的区别
var
my_array:TArray;
i:integer;
my_array :=@a;//把在栈中声明的字节数组首址传给my_array,这时,my_array与ar就是一家人了!
for i := 0 to 14 do
begin
a[i] := 'b';
end;
a[15] := Char(63);
my_array[0]:='a'; //这里的等效语句也可以为ar[0]:='a'
type
TArray = array of char;
PArray = ^TArray;
var
ar:array[0..15] of char;
implementation
var
my_array:TArray;
i:integer;
my_array :=@a;
for i := 0 to 14 do
begin
a[i] := 'b';
end;
a[15] := Char(63);
my_array[0]:='a'; //这一句 为什么是my_array[0]而不是my_array^[0]呢