Variáveis de ponteiro podem ser passadas como parâmetros em argumentos de função e procedimento. Variáveis de ponteiro podem ser transmitidas como parâmetros de valor e variáveis; no entanto, quando passado como parâmetros variáveis, o subprograma pode alterar inadvertidamente o valor do ponteiro, o que levará a resultados estranhos.
O programa a seguir ilustra a passagem de um ponteiro para uma função -
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.
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Here the pointer brings the value: 100