これまた大したことないゴミプログラムですが………。
program pointer;
var i : longint;
p : ^longint;
pp :array[0..100] of longint;
q : longint;
begin
for i := 0 to 100 do
pp[i] := i;
p := @pp[0];
for i := 0 to 100 do
begin
read(q);
writeln('q=',q);
if(q < 0) then
break;
end;
writeln(p[i]);
end.
負の整数が入力されるまで(最大100回)ループして、負の整数が入力されるまで何回目ループしたかの数を出力して終わるだけ………。
$ fpc pointer.pas
Free Pascal Compiler version 3.2.0 [2021/02/21] for x86_64
Copyright (c) 1993-2020 by Florian Klaempfl and others
Target OS: Win64 for x64
Compiling pointer.pas
Linking pointer.exe
18 lines compiled, 0.0 sec, 33648 bytes code, 1508 bytes data
$ ./pointer
1
q=1
3
q=3
5
q=5
7
q=7
-1
q=-1
4
$
ポインターは初期化しかできないですが、dec や inc などの関数でポインターを進めたり戻したりはできるらしいです。