小编glu*_*gau的帖子

指向二维数组的指针如何在 C++ 中工作?

我对 C++ 还很陌生,我一直在玩这种语言以试图理解它的大部分内容。我最近开始研究 2d 数组,我完全理解指向数组的指针数组(在堆上创建),但是我在使用下面的代码时遇到了困难。

int arr2d[3][2] = {
    {1, 2},
    {3, 4},
    {5, 6}
};
Run Code Online (Sandbox Code Playgroud)

我知道在内存中,它充当一维数组,但我不明白指针如何与它们一起工作。我尝试将 arr2d 分配给 int 指针,但它不起作用。所以我尝试使用 auto 关键字。

int* a = arr2d; // throws an error
auto a = arr2d; // auto = int(*a)[2]
Run Code Online (Sandbox Code Playgroud)

在 Visual Studio 中将鼠标悬停在“a”上时,它给我类型 int(*a)[2]。这是我真的不明白的地方。

我已经查找了文档,但在任何地方都找不到这种语法。有人可以向我解释该指针类型的作用以及如何使用任何 n 维数组重新创建它吗?

谢谢!

c++ arrays pointers multidimensional-array

2
推荐指数
1
解决办法
87
查看次数

标签 统计

arrays ×1

c++ ×1

multidimensional-array ×1

pointers ×1