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

大家看看这个结果是多少解决思路

2012-02-24 
大家看看这个结果是多少varP:PCharbuffer:string[255]V:DWORDbeginbuffer:aaaaasetlength(Buffer,1

大家看看这个结果是多少
var 
  P:PChar;
  buffer:string[255];
  V:DWORD;
begin
  buffer:='aaaaa';
  setlength(Buffer,1);
  P:=PChar(@Buffer[0]);
  V:=55555+PWORD(P)^;
end;
请问V结果是多少,怎么来的,请讲解详细点

[解决办法]
这个还是很好算的
buffer:='aaaaa';
setlength(Buffer,1);
这里buffer的内容为
$01 $61 $61 $61 $61 $61
P:=PChar(@Buffer[0]); //这个是个陷井.p是什么指针都无所谓,因为下面有强制转换
V:=55555+PWORD(P)^; //这个PWORD才是关键

PWORD(P)^的内存为 $01 $61 即 $6101 =24833
所以V=55555+24833=80388

热点排行