关于Pchar看看这个函数的源代码
function StrAlloc(Size: Cardinal): PChar;
begin
  Inc(Size, SizeOf(Cardinal));
  GetMem(Result, Size);
  Cardinal(Pointer(Result)^) := Size;
  Inc(Result, SizeOf(Cardinal));
end;我不知道是不是可以说明了^char的区别,实际上这样的指针只是指向单个的字符而不是字符串
呵呵,String类型和Pchar类型相似,StrAlloc函数实际上分配的是一个字符串,而不是一个Pchar,但是他返回的是一个PChar,不过String类型还有引用计数,String类型的变量不会在局部堆栈中分配,如同一个类,其他的一样。^string实际上是一个指向指针的指针。