Pointer ,pchar ,^char 之间的异同点,我现在越看书越迷糊 希望大家不吝赐教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <<參透>>一書, 關于這個問題, 寫得還不錯 pointer讲白了就是一个32位的数字,该数字表示内存中的一个地址,用户可以根据自己的需要将任何类型的指针数据强制转换成Pointer类型PChar=^Char,所以Pchar是char类型的指针所以^Char可以用Pchar来代替 <<參透>>一書, 關于這個問題 我翻了书 没找到 Pointer-----------------无类型指针pchar--------------------指向char类型的一个指针. 是^char类型的一个别名^char--------------------一个指向char类型的一个指针. 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的值; pointer = pchar = ^char实际上都是一样的东西。不过逐个字节遍历内存PChar比较简单一些,可以直接用Inc(P)得到下一个地址,pointer只能用 P := Pointer(Integer(P) + 1), 麻烦 SPCOMM接收字符不完全 恭喜JJ大版主当选MS MVP 求助!! 在intraweb的dll模式下如何找到打印机? 诚征共同学习DELPHI6.0之好友 安装delphi5出现的问题:请大虾指点,急! delphi tmemo 控件如何 判断垂直滚动条已滚动至最低部? 为什么会出现这样,我要自杀了!肯定给分! 怎样通过delphi来抓取动画和声音 如何解决DELPHI5中ActiveForm在IE中花屏的问题? 有没有既懂DELPHI又懂C++的兄弟啊?来帮忙看看这段代码!关于读取二进制图片的! 怪问题一个!
PChar=^Char,所以Pchar是char类型的指针
所以^Char可以用Pchar来代替
pchar--------------------指向char类型的一个指针. 是^char类型的一个别名^char--------------------一个指向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的值;
实际上都是一样的东西。不过逐个字节遍历内存PChar比较简单一些,可以直接用Inc(P)得到下一个地址,pointer只能用 P := Pointer(Integer(P) + 1), 麻烦