我对 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 维数组重新创建它吗?
谢谢!