var i:integer;
var pi:^integer;i:=1;
pi:=@i;怎么样才能知道pi的内存地址的值?

解决方案 »

  1.   

    var
        i:  integer;
    begin
        i:=1;
        Showmessage('$'+InttoHex(Integer(@I),0));
    end;
      

  2.   

    IntToHex(Integer(@I));Format('%p',[@I]);
      

  3.   

    var
        i:  integer;
    begin
        i:=1;
        Showmessage('$'+InttoHex(Integer(@I),0));
    end;
      

  4.   

    Showmessage('$'+InttoHex(Integer(@I),0));
      

  5.   

    type
      PInteger = ^integer;
    var
      i:integer;
      pi:^integer;
      ppi:^PInteger;
    begin
      i := 1;
      pi := @i;
      ShowMessage(IntToStr(pi^));
      ppi := @pi;
      ShowMessage(IntToStr(ppi^^));
    end;
      

  6.   

    楼上2位你们也够xx的,不就是为了分吗,人家的答案你们居然好意思复制一下就贴出来,哪怕你大小写改改都说得过去,
    你看 netlib(河外孤星) 写的是
    InttoHex 你们贴的也一样,下次费点事儿改成  IntToHex,或者写成 InttoHex(Integer(Addr(I)),0)) 都说得过去!
    你们的分大部分这么来的吧?论坛由你们这样的不知道怎么说……
    郁闷……
      

  7.   

    如下的方法:  Format('%p',[p]); 可以吗? 有个问题: var p:Pointer;  
                s:='1234';
                p:=@s;
                label1.caption:=Format('%p',[Pointer(s)]);
                label2.caption:=Format('%p',[p]); 结果怎么不一样? 都应该是s串的地址呀,请您指导