gpt4 book ai didi

c++ - 使用双指针声明二维数组

转载 作者:行者123 更新时间:2023-11-30 01:09:48 24 4
gpt4 key购买 nike

我对 C++ 程序中的这一行感到困惑。该程序的思想是检查 4x4 数组是否对称。这部分代码声明了一个二维数组,我不明白。

int** array = new int*[n];

虽然,还有另一个与此类似的问题,但它是关于我得到的单指针的。

int *array = new int[n];

我不明白双指针。请解释。

最佳答案

如何创建单指针数组?你这样做:

int* myArray = new int[n];

这是什么意思?它有两个部分。第一部分是保留一个指针 int* 我们称之为 myArray,第二部分是您保留 n 个元素,每个元素的大小为 int 存储在内存中(这是一个数组,对吗?),然后获取该数组的地址并将其保存在变量 myArray 中。

现在你想要一个二维数组,它是数组的数组。所以这个新数组的每个元素都是其中之一,我们在那里讨论过。我们如何保留这个?我们这样做:

new int*[n];

因为我们要保留 n 个插槽,每个插槽的类型都是 int*,我们之前谈到过。

现在返回值的类型是什么?它是数组的数组,或者说是“指向数组的指针,后者也是指向数组的指针”,所以你写成

(int*)*

或者

int**

变成了

int** array = new int*[n];

关于c++ - 使用双指针声明二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39397322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com