function DoubleByValue(X: Integer): Integer; // X 是数值参数
begin
X := X * 2;
Result := X;
end;
function DoubleByRef(var X: Integer): Integer; // X 是变量参数
begin
X := X * 2;
Result := X;
end;
这两个函数返回同样的结果,但只有第二个(DoubleByRef)能改变传给它的变量的值。假设我们这样
调用函数:
var
I, J, V, W: Integer;
begin
I := 4;
V := 4;
J := DoubleByValue(I); // J = 8, I = 4
W := DoubleByRef(V); // W = 8, V = 8
end;