Pascal - Ponteiro de Retorno de Subprogramas

Uma função pode retornar um ponteiro como resultado. O programa a seguir ilustra o retorno do ponteiro de uma função -

program exPointersFromFunctions;
type
   ptr = ^integer;

var
   i: integer;
   iptr: ptr;
function getValue(var num: integer): ptr;

begin
   getValue:= @num;
end;

begin
   i := 100;
   iptr := getValue(i);
   
   writeln('Value deferenced: ', iptr^);
end.

Quando o código acima é compilado e executado, ele produz o seguinte resultado -

Value dereferenced: 100