考虑这段代码:
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.
第二个“写”应该对 ptr1 和 ptr2 给出相同的结果,但它给出了(lazarus - free pascal):
ptr1: 4243456, ptr2: 4243472
ptr1: 4243456, ptr2: 4243472
在我看来应该是:
ptr1: 4243472, ptr2: 4243472
我对指针完全陌生。我理解错了吗?
问候。