このコードを検討してください:
program test;
uses crt;
var ptr1, ptr2:^integer;
begin
new(ptr1);
new(ptr2);
writeln('ptr1: ',integer(@ptr1), ', ptr2: ', integer(@ptr2));
ptr1:=ptr2;
write('ptr1: ',integer(@ptr1), ', ptr2: ', integer(@ptr2));
readln;
end.
2番目の'write'は、ptr1とptr2に対して同じ結果をもたらすはずですが、(lazarus-free pascal)を与えます:
ptr1: 4243456, ptr2: 4243472
ptr1: 4243456, ptr2: 4243472
私の意見では、次のようになります。
ptr1: 4243472, ptr2: 4243472
私はポインタにまったく慣れていません。私は何か間違ったことを理解しましたか?
よろしく。