var
s:String;
P:PString;
i:integer;
begin
s:='abc';
i:=cardinal(s);
p:=@S;
showmessage(inttostr(i));
showmessage(inttostr(Cardinal(P));
end;请问一下cardinal(s)转换出来的i是个什么值,是内存地址吗,如果是的话为什么跟指针指的内存地址(比如说cardinal(@s)的值)不一样, 不是说指针保存的也是内存地址吗, 百思不得其解, 请高手赐教~
s:String;
P:PString;
i:integer;
begin
s:='abc';
i:=cardinal(s);
p:=@S;
showmessage(inttostr(i));
showmessage(inttostr(Cardinal(P));
end;请问一下cardinal(s)转换出来的i是个什么值,是内存地址吗,如果是的话为什么跟指针指的内存地址(比如说cardinal(@s)的值)不一样, 不是说指针保存的也是内存地址吗, 百思不得其解, 请高手赐教~
@s则是那个s变量的地址,因为存储指针地址也需要内存来存储,而@s就是存储这个指针所用到的内存。