声明指向数组的指针时是否需要括号?
我只是在看这个问题:
解决方案最终使用以下行:
int a[3][2] = {{1, 2}, {11, 12}, {21, 22}};
...
int (*b)[2] = a;
“将静态分配的多维数组分配给临时变量”。
我对该行的语法有点困惑:
int (*b)[2] = a;
在这种情况下,是否需要括号才能获得正确的效果,如果需要,为什么?有没有办法在不使用它们的情况下获得相同的结果?
I was just looking at this question:
How to assign a multi-dimensional array to a temporary variable?
The solution ended up using the lines:
int a[3][2] = {{1, 2}, {11, 12}, {21, 22}};
...
int (*b)[2] = a;
to "assign a statically allocated, multi-dimensional array to a temporary variable."
I'm a little confused about the syntax of the line:
int (*b)[2] = a;
In this instance, are the parentheses required to get the right effect, and if so, why? Is there a way to get the same result without using them?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这:
将
b
声明为指向两个int
数组的指针。这与: 不同,它将
b
声明为两个指向int
的指针的数组。您需要第一种形式才能正确执行指针算术。
This:
declares
b
as a pointer to an array of twoint
s. This is not the same as:which declares
b
as an array of two pointers-to-int
.You need the first form in order to correctly perform pointer arithmetic.