请问有如下语句:
var
  pc :pchar;
  w :integer;
  s :string;
begin
  pc :='Hello';
  w :=integer(pc);
  s :=pchar(w);
 ...
end;
 如何理解其中的类型转换:integer(pc)  pchar(w),是取得地址和取出所指内容吗?

解决方案 »

  1.   

    pchar 类型就是 pointer 类型 占4字节; integer 占4字节;pc :='Hello';    //编译器在程序空间内分配
                     //6个字节 'H','e','l','l','o',0  最后多一个0。 
                     //并且将'H'的地址(比如; $00000002)赋给 pc .
    w :=integer(pc); //w 的值为 $00000002 
    s :=pchar(w);    //程序将从 $00000002 开始直到0结束内的所有字符
                     //拷贝到s中。  s的值为 'Hello'.