var i: integer;
    p: PChar;
和C一样方便!procedure Test;
begin
  i:=1;
  (PChar(@i) + 1)^ := #1;
  // 现在的 i = 257 { $0101 }
end;

解决方案 »

  1.   

       请看一看《Delphi 2 程序设计大全》(Charlie calvert著)这本书的前几章,定会有收获。
      

  2.   

    var
      i:integer;
      p:pointer;
      pint:^integer;
    begin
      p:=AllocMem(255);
      pint:=p;
      pint^:=5; //给第一个integer单元赋值
      pint:=pointer(integer(p)+4);//移到第二个integer单元
      pint^:=6;//给第二个integer单元赋值
      pint:=p;
      caption:= inttostr(pint^);//显示第一个单元的内容
      Freemem(p);
    end;
      

  3.   

    把指针当数组用是一个很不好的习惯,很容易在运行期间越界。在C++里面也应该尽量避免。如果一定要用,Delphi里面可以这样:type
      TCardinals = array [0..MaxListSize-1] of Cardinal; // 这个数组尺寸不能超过2G Byte
      PCardinals = ^TCardinals;var
      pSomeValue: PCardinals;procedure SomeFun;
    begin
      GetMem(pSomeValue, SizeOf(Cardinal) * 256);
      pSomeValue[0] := 256;
      pSomeValue[255] := 0;
    end;