我试图将动态数组的地址分配给另一个动态数组,即我有两个指针的地址:
Someclass *pointer = new Someclass[10];
Someclass *pointer2 = new Someclass[10];
Run Code Online (Sandbox Code Playgroud)
我现在想要将指针的地址分配给pointer2:
pointer2 = pointer;
Run Code Online (Sandbox Code Playgroud)
测试以查看地址是否相同:
cout << &pointer2 << endl;
cout << &pointer << endl;
Run Code Online (Sandbox Code Playgroud)
我的输出:
0x28fed4
0x28fb98
Run Code Online (Sandbox Code Playgroud)
所以他们的地址不一样.是什么赋予了?我不是只是通过输入pointer2 = pointer将它们分配到同一个地址吗?如果没有,那么这个陈述是做什么的?
我试着用一个没有类和对象的简单程序来做这件事:
int main()
{
int * pointer1;
int * pointer2;
pointer1 = pointer2;
cout << &pointer1 << endl;
cout << &pointer2 << endl;
}
Run Code Online (Sandbox Code Playgroud)
它是一样的,他们的地址仍然不同?这可能是我误解的基本内容,有人可以清理它吗?谢谢.
您打印出的地址指针,而不是指针指向的地址!
试试这个:
cout << pointer2 << endl;
cout << pointer << endl;
Run Code Online (Sandbox Code Playgroud)
当你使用&你把地址东西,所以&pointer是的地址指针,而不是它所指向的东西.是的,即使是指针也可以指向它们!