声明指向数组的指针时是否需要括号?
问题描述:
我只是在看这个问题:声明指向数组的指针时是否需要括号?
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
作为两个指针-TO- int
的阵列。
您需要第一个表单才能正确执行指针算术。
谢谢!出于某种原因,我无法在脑海中保持这种直觉。 –
@woote:http://cdecl.org值得加书签。 –
是的,我只是从其他问题中检查出来 - 这是一个非常酷的工具。 –