Pascal-passing-pointers-to-subprograms

提供:Dev Guides
移動先:案内検索

Pascal-ポインターをサブプログラムに渡す

ポインター変数は、関数およびプロシージャの引数のパラメーターとして渡すことができます。 ポインター変数は、値パラメーターと変数パラメーターの両方として渡すことができます。ただし、変数パラメータとして渡された場合、サブプログラムはポインタの値を誤って変更して、奇妙な結果を招く可能性があります。

次のプログラムは、関数にポインタを渡すことを示しています-

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