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)的值)不一样, 不是说指针保存的也是内存地址吗, 百思不得其解, 请高手赐教~