procedure TForm1.Button1Click(Sender: TObject);
var a: array[1..100] of integer;
ptr:^integer;
i:integer;
begin
ptr:=@a;
for i:=0 to 100 do
a[i]:=i;
inc(ptr,2);
showmessage(inttostr(ptr));??????//想显示a[3]
end;end.谢谢

解决方案 »

  1.   


    var
     A: array[1..100] of Integer;
     ptr:PInteger;
     i:integer;
    begin
     ptr:=@a;
     for i:=0 to 100 do
     a[i]:=i;
     inc(ptr,2);
     showmessage(inttostr(ptr^)); //想显示a[3]
    end;
      

  2.   

    楼上的速度好快啊,呵呵邮箱的名字叫 ptr
    邮箱中的内容 p^ 
    @a 这个表示放a这封信的第一个信箱(因为a是数组,a中成员放在不同的地址中,@a代表首地址)inc(ptr,2); 这一句是将信箱的号数加了2ptr 而这个此时已经不是第一个信箱了。是第三个。
    所以ptr^表示,要取第三个信箱中的内容。那就是a[3]
      

  3.   

    ptr是a[3]的地址,ptr^才是a[3]的值,我理解的对吧。