Pascal - Passaggio di puntatori a sottoprogrammi

Le variabili del puntatore possono essere passate come parametri negli argomenti di funzioni e procedure. Le variabili puntatore possono essere passate sia come valore che come parametri variabili; tuttavia, quando viene passato come parametri variabili, il sottoprogramma potrebbe inavvertitamente alterare il valore del puntatore che porterà a risultati strani.

Il seguente programma illustra il passaggio del puntatore a una funzione:

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 il codice precedente viene compilato ed eseguito, produce il seguente risultato:

Here the pointer brings the value: 100