首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请问个关于指针的有关问题

2012-11-01 
请教个关于指针的问题vars:StringP:PStringi:integerbegins:abci:cardinal(s)p:@Sshowmessage(

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

[解决办法]
Cardinal(s)转换出来是字符串'abc'的内存地址
@s则是那个s变量的地址,因为存储指针地址也需要内存来存储,而@s就是存储这个指针所用到的内存。

热点排行