给你一个例子。你可以运行看看结果。
没有指针的情况。
// 交换两个数( 没有用指针的情况)。
procedure ExchangeA(X,Y: Integer);
var
  iTemp: Integer;
begin
  iTemp := X;
  X := y;
  y := iTemp;
end;// 交换两个数(用指针的情况)。
procedure ExchangeB(var X,Y: Integer);
var
  iTemp: Integer;
begin
  iTemp := X;
  X := y;
  y := iTemp;
end;若 X := 1; y:=2;调用 ExchangeA(X,y) 后结果为:  X =1; y = 2;
调用 ExchangeB(X,y) 后结果为:  X =2; y = 1;

解决方案 »

  1.   

    在delphi中,虽然很多地方使用了指针,但object pascal的语法隐藏了它,使得它不像在c++中那么明显直观。不如对象变量,本质上它就是指针,但我们想静态变量一样来使用它,而在c++中这个是明显区分的。通常在大块的数据传送时,经常要用指针,像无类型文件操作中的blockread blockwrite两个函数中使用的Buf参数。指针的优点是用完了可以释放空间,这在以前的小内存的环境中是十分重要的。
      

  2.   

    我来说一个实际一点的例子好不好.
    比方说我现在正在做的一个程序,用了Indy,其中我需要保存服务器端接收到的每一个连接的情况,于是我在Onconnect事件里面将每一个连接(是一个TPeerThread对象)的指针保存下来.所以我定义了一个数组array[0..MAXConnections] of Pointer.
    然后我每次就将那个TPeerThread对象(其实也是一个指针了)赋值给数组中的某一个变量.
    这样子说可以吗?