读书人

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

发布时间: 2012-02-24 16:30:38 作者: rapoo

大家看看这个结果是多少
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

读书人网 >.NET

热点推荐