希望大家不吝赐教

解决方案 »

  1.   

    <<參透>>一書, 關于這個問題, 寫得還不錯
      

  2.   

    pointer讲白了就是一个32位的数字,该数字表示内存中的一个地址,用户可以根据自己的需要将任何类型的指针数据强制转换成Pointer类型
    PChar=^Char,所以Pchar是char类型的指针
    所以^Char可以用Pchar来代替
      

  3.   

    <<參透>>一書, 關于這個問題 我翻了书 没找到
      

  4.   

    Pointer-----------------无类型指针
    pchar--------------------指向char类型的一个指针.  是^char类型的一个别名^char--------------------一个指向char类型的一个指针.
      

  5.   

    Pointer ,pchar ,^char 
    相同点:都是指针(或者与指针相关)不同点:
    Pointer: 是无类型指针,可以指向任何内存地址;
    pchar ,^char :指向字符
    pchar: 通常是指向字符串,并且该字符串以\0结尾;
    ^char :指向字符变量,或者字符数组中的某一元素的地址,该字符数组不必须以\0结尾
    pchar是C/C++中广泛使用的字符串类型;
    在delphi中通常使用string;但调用API时,通常使用pchar.
    关系:三者可以互相转换,因为本质上三者都是一个与integer长度相当的一块内存,其中存储着指向目标的地址,如mosquitor() 所言"用户可以根据自己的需要将任何类型的指针数据强制转换成Pointer类型"

    var a: Pointer;
      b: integer;
      pb: PInteger;
    ...
      pb := ^b;  // pb =@b;  ??
      a  := pb;
      后可以用PInteger(b)^来得到a的值;
      

  6.   

    pointer = pchar = ^char
    实际上都是一样的东西。不过逐个字节遍历内存PChar比较简单一些,可以直接用Inc(P)得到下一个地址,pointer只能用 P := Pointer(Integer(P) + 1), 麻烦