我刚刚在看这个问题:
How to assign a multi-dimensional array to a temporary variable?
解决方案最终使用了以下行:
int a[3][2] = {{1, 2}, {11, 12}, {21, 22}};
...
int (*b)[2] = a;
“将静态分配的多维数组分配给临时变量。”
我对该行的语法有点困惑:
int (*b)[2] = a;
在这种情况下,是否需要括号才能获得正确的效果,如果需要,为什么?有没有办法在不使用它们的情况下获得相同的结果?
最佳答案
这个:
int (*b)[2]
将 b
声明为指向两个 int
的数组的指针。这与以下内容不同:
int *b[2]
将 b
声明为两个指向 int
的指针的数组。
您需要第一种形式才能正确执行指针运算。
关于c++ - 声明指向数组的指针时是否需要括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214273/