【发布时间】:2020-04-20 17:18:59
【问题描述】:
为什么所有这些地址不相等? &wsk[0][0] 等于 wsk[0] 和它的逻辑,但 wsk 是不同的。为什么?数组名也是数组的地址。
#include<iostream>
using namespace std;
int main()
{
int** wsk = new int* [2];
wsk[0] = new int[2];
cout << &wsk[0][0] << endl;
cout << wsk[0] << endl;
cout << wsk << endl;
system("Pause");
return 0;
}
【问题讨论】:
-
数组的名称也是数组的地址。 -- 你的代码中没有数组。你有所有的指针。另外,您将如何
delete您分配的内存?啊哈——两个不同的电话,对吧?所以指针不同是有道理的,不是吗? -
您分配的 wsk[0] 与 wsk 不同。您对 new 使用了两个不同的调用。所以这是两个不同的指针。