G gzxyq Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-08 #1 pbyte和pchar是不是以'/0'结束的??怎样才能判断到它们是否以'/0'结束?? pccahr; pc:=pchar('AA'); 此时的pc是不是以'/0'结束?? 谢谢!!!
G gzxyq Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-08 #2 pbyte和pchar是不是以'/0'结束的??怎样才能判断到它们是否以'/0'结束?? pccahr; pc:=pchar('AA'); 此时的pc是不是以'/0'结束?? 谢谢!!!
D dawnsong Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-08 #3 procedure TForm1.FormCreate(Sender: TObject); var pc: PChar; pb: PByte; begin pc :='aa'; ShowMessage(IntToStr(Integer(pc[3])));//pc就是以'/0'结束 pb :=PByte(pc);//此处不同于PChar,编译器要求类型比较严格 Integer(pb) :=Integer(pb) +3; ShowMessage(IntToStr(Integer(pb^))); end;
procedure TForm1.FormCreate(Sender: TObject); var pc: PChar; pb: PByte; begin pc :='aa'; ShowMessage(IntToStr(Integer(pc[3])));//pc就是以'/0'结束 pb :=PByte(pc);//此处不同于PChar,编译器要求类型比较严格 Integer(pb) :=Integer(pb) +3; ShowMessage(IntToStr(Integer(pb^))); end;
可 可爱小猪 Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-09 #4 PByte不是以/0结尾的 你写的哪个是以/0结尾的 楼上写的程序怎么那么奇怪啊
D dongy_143 Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-09 #5 运行了二楼写的代码;靠怎么都是‘0’?有没有高人指点; 不了解 楼主帮你顶
金 金卡绣球jk8.com Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-10 #6 是十六进制的 0 ; $0 结尾 ; /0 只是说意思,那是 C 的; 你只要再一次 pchar('任意内容'); 它就肯定是 $0 结尾了;
S sephy Unregistered / Unconfirmed GUEST, unregistred user! 2005-05-10 #7 二楼的代码的意思就是 ShowMessage(IntToStr(Integer(pc[3]))); pc为PChar2个字符长,取到第3个是0,说明以/0结尾 pb是一个Byte的指针类型,一开始取pc的头位置pb :=PByte(pc); 下面的一句我有点看不懂他的写法,如果让我写是这样inc(pc,3); 这样做似乎有点问题,pc应该是ShortInt的指针,或者直接Char的指针,ShortInt才是1字节长,Byte是两字节 那个integer就是让直接做数字加法,而不要考虑指针所指类型长度? 到了pc的第3个位置,当然也是0了
二楼的代码的意思就是 ShowMessage(IntToStr(Integer(pc[3]))); pc为PChar2个字符长,取到第3个是0,说明以/0结尾 pb是一个Byte的指针类型,一开始取pc的头位置pb :=PByte(pc); 下面的一句我有点看不懂他的写法,如果让我写是这样inc(pc,3); 这样做似乎有点问题,pc应该是ShortInt的指针,或者直接Char的指针,ShortInt才是1字节长,Byte是两字节 那个integer就是让直接做数字加法,而不要考虑指针所指类型长度? 到了pc的第3个位置,当然也是0了