Pascal-passing-pointers-to-subprograms

提供:Dev Guides
2020年6月22日 (月) 17:27時点におけるMaintenance script (トーク | 投稿記録)による版 (Imported from text file)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

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