您好,请教 Pchar 与 字符数组的关系 ? 谢谢(20分)

  • 主题发起人 主题发起人 pcgod
  • 开始时间 开始时间
P

pcgod

Unregistered / Unconfirmed
GUEST, unregistred user!
您好,参考如下代码:(From Delphi Help)

procedure TForm1.Button1Click(Sender: TObject);
var
ca :array[0..30] of Char;
s : String ;
begin
S := 'Honk if you know Blaise.';
StrPCopy(ca,s);
ShowMessage(Ca) ; //可以得到整个s串
end;
在Delphi Help中,
function StrPCopy(Dest: PChar; const Source: string): PChar;
第一个参数应该为 Pchar,但这儿用 array of char 为何可以 ?字符数组与Pchar 有何关系?
字符数组是不是以 Null 结束 ? 如果是,那么是不是可以说 : Pchar 实质上就是一个
字符数组 ?

谢谢
 
在delphi中的string其实是一种数组,它的数据是从下标1开始,而在下标0处存储着数组中的字符个数
而pchar是一种以Null结束的零基字符数组,就是它的数据存储是从下标0开始的,而结束是以#0为标志
从字符数组array[0..length] of char的定义(这种数组叫零基字符数组)可以看出它的数据存储也是从下标0开始的,所以它与pchar
是赋值相容的,就是说它们之间可以相互赋值。
 
Pchar 是指针!就是C里的 char *
 
Pchar和 array of char 相当,
只是array of char 已分配空间,而且该指针是只读的。

是,是
 
非常同意楼上几位观点。
 
此处ca=ca[0]
ca[0]的地址即指针所指地址
 
Pchar 就是 指向char的指针
 
jsxjd的最对

to 52free:
ca表示ca[0]的地址,但不等于ca[0]吧
 
>> ca :array[0..30] of Char;
你这样试试
ca :array[1..30] of Char;
^^^
StrPCopy(ca[1],S);
再写ca 就不行了喔。呵呵。
希望你能明白 。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
631
import
I
后退
顶部