Var
  S:string;
  L:integer;
begin
  s:='lxpbuaa';
  l:=PInteger(Pinteger(@s)^-4)^
end;谁能说一下上面的代码,越详细越好!

解决方案 »

  1.   

    就是取串长度。
    Delphi的string是一个指针,指向串存储的空间,在此空间之前的4字节是串长度,再前4个字节是引用计数。
      

  2.   

    @S取s的地址 ,Pinteger(@s) 转化为整形类型的指针,Pinteger(@s)^ 转换成后的值
    PInteger(Pinteger(@s)^-4)  转换成整形指针PInteger(Pinteger(@s)^-4)^ 取值