【发布时间】:2021-07-18 21:11:58
【问题描述】:
我是指针的新手,在尝试理解它们时遇到了一些问题。
现在我通过here 查找了这个问题。我对解决方案不是 100% 满意。所以我自己做了一些检查,看看会发生什么。
我想要一个指向二维数组的指针,所以我尝试了:
int arr[2][3] = {{12,23,4},{323,43,3}};
int (*ptr)[3] = arr; // A pointer to the first element of array.
// The first element of array is an array of three ints.
我运行了以下代码:
std::cout<<ptr<<std::endl;
std::cout<<*ptr<<std::endl;
现在我得到的结果让我有点困惑:
0x61fdc0
0x61fdc0
两次显示相同的输出。引用后指针和值的地址怎么会一样呢?这种行为是否类似于双指针?像this 这样的解释会很有帮助。
【问题讨论】:
-
您可能会发现2D array seg fault in C 的答案很有用。
标签: c++ arrays pointers multidimensional-array