给你一个例子。你可以运行看看结果。
没有指针的情况。
// 交换两个数( 没有用指针的情况)。
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;
没有指针的情况。
// 交换两个数( 没有用指针的情况)。
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;
比方说我现在正在做的一个程序,用了Indy,其中我需要保存服务器端接收到的每一个连接的情况,于是我在Onconnect事件里面将每一个连接(是一个TPeerThread对象)的指针保存下来.所以我定义了一个数组array[0..MAXConnections] of Pointer.
然后我每次就将那个TPeerThread对象(其实也是一个指针了)赋值给数组中的某一个变量.
这样子说可以吗?