N
nieyunfeng
Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:
有一个小问题一直想不透彻,就是pchar和string的转换问题!
比如:var pchar;k:string;
begin
k:='hello';
p:=pchar(k);此时p得到的应该是指向k的指针吧,但是当k改变时:
k:=k+'delphi';
此时k的值是‘helloworld’,但p的值却还是‘hello’,就是说开始p是指向k的,但是k改变后为什么p不会改变,难道k又开辟出了另外一块内存么?这个过程是怎么样的一个内存处理过程啊?小弟一直想对此很困惑但是又很想知道个究竟,有哪位大哥大姐知道还望能指点迷津,不胜感激!
有一个小问题一直想不透彻,就是pchar和string的转换问题!
比如:var pchar;k:string;
begin
k:='hello';
p:=pchar(k);此时p得到的应该是指向k的指针吧,但是当k改变时:
k:=k+'delphi';
此时k的值是‘helloworld’,但p的值却还是‘hello’,就是说开始p是指向k的,但是k改变后为什么p不会改变,难道k又开辟出了另外一块内存么?这个过程是怎么样的一个内存处理过程啊?小弟一直想对此很困惑但是又很想知道个究竟,有哪位大哥大姐知道还望能指点迷津,不胜感激!