将指针值分配给另一个指针值。我做错了吗?

时间:2016-01-29 13:18:57

标签: c++ pointers

我正在尝试将动态数组的地址分配给另一个动态数组,即我有两个指针的地址:

 Someclass *pointer = new Someclass[10];

 Someclass *pointer2 = new Someclass[10];

我现在想将指针的地址分配给pointer2:

 pointer2 = pointer;

测试地址是否相同:

 cout << &pointer2 << endl;
 cout << &pointer << endl;

我的输出:

 0x28fed4
 0x28fb98

所以他们的地址不一样。是什么赋予了?我不是只是通过输入pointer2 = pointer将它们分配到同一个地址吗?如果没有,那么这个陈述是做什么的?

我尝试使用一个没有类和对象的简单程序来执行此操作:

 int main()
 {
int * pointer1;
int * pointer2;

pointer1 = pointer2;

cout << &pointer1 << endl;
cout << &pointer2 << endl;
}

同样,他们的地址仍然不同?这可能是我误解的基本内容,有人可以清理它吗?感谢。

1 个答案:

答案 0 :(得分:5)

您正在打印指针的地址,而不是指针指向的地址!

试试这个:

&

当您使用&pointer时,您会使用地址,因此[INFO] : ADD :: TEXT [INFO] : ADD :: TEXT [INFO] : ADD :: FORM [INFO] : ADD :: FILTER [INFO] : ADD :: SIDE 指针的地址,而不是它指向的内容。是的,即使是指针也可以指向它们的指针!