指针变量可以作为函数和过程参数中的参数传递。 指针变量可以作为值和变量参数传递; 但是,当作为变量参数传递时,子程序可能会无意中改变指针的值,这将导致奇怪的结果。
以下程序说明了将指针传递给函数 -
program exPointertoFunctions;
type
iptr = ^integer;
var
i: integer;
ptr: iptr;
function getNumber(p: iptr): integer;
var
num: integer;
begin
num:=100;
p:= @num;
getNumber:=p^;
end;
begin
i := getNumber(ptr);
writeln(' Here the pointer brings the value ', i);
end.
编译并执行上述代码时,会产生以下结果 -
Here the pointer brings the value: 100