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
-
子程序返回指针-
一个函数可以返回一个指针作为其结果。以下程序说明了从函数返回指针-
尝试一下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.
编译并执行上述代码后,将产生以下结果-Value dereferenced: 100