怎样让两个指针指向同一个变量(100分)

  • 主题发起人 主题发起人 一个过客
  • 开始时间 开始时间

一个过客

Unregistered / Unconfirmed
GUEST, unregistred user!
改变其中一个指针指向的值,另一个指针指向的值也跟着变化。
如果变量是class就可以,简单变量就不行,为什么呢?
 
>简单变量就不行
当然可以,不信试一试:

procedure TForm1.Button6Click(Sender: TObject);
var
Pc1,Pc2:PChar;
Ch:Char;
begin
Ch:='A';
Pc1:=@Ch;
Pc2:=@Ch;
Caption:=Pc2^;
Pc1^:='B';
Caption:=Caption+Pc2^;
end;
 
是呀,怎么不可以?
 
但是这样一来两个指针其实是同一个指针了。
我需要“两个指针”的效果。
 
>是同一个指针
非也,他们仍然是“两个指针”——它们仍然各自占有4Bytes的存储空间,只不过值相同而已
(都是Ch的地址)。在Delphi中,class变量实际上也是指针,只不过在使用的时候把'^'省略了,
在未Create之前,也只占有4Bytes空间(Create之后,这4Bytes存放着对象实例所在地址)。

>“两个指针”的效果
例如......
 
两个指针指向不同地址但是更改了其中一个指向的值另一个也会改变,难道是这个意思?
可能吗?

即使是 c++ 里的引用变量也是两个指针指向同一地址。
 
老兄,你不是一向自称天下第一吗?这么简单的问题也不会。
哈 哈 哈 哈
想不到你也有今天
 
HORNEY:小心老子揍你!
 
后退
顶部