【发布时间】:2016-04-20 08:44:03
【问题描述】:
编辑
我在这里阅读了问题和答案:C pointer to array/array of pointers disambiguation。那里的答案并没有解决我的问题的重点以及下面已经发布的一些答案。这是相似,但不是重复。这里的重点旨在解释() 如何更改声明。链接中的重点更广泛,实际上并没有围绕() 对声明的影响和影响,例如我在下面包含的声明。
方式不同的原因是什么
int *a[5];int (*a)[5];
被创建?
我对@987654328@ 如何更改声明的解释特别感兴趣。
例如:
1)
a[0] = malloc(sizeof(int)); //compiles
但是对于 2) 它没有。 (错误:数组类型 int [5] 不可分配)
问题:
1)2)中的()有什么作用?
2) 为什么要在声明 1 上使用声明 2?
(也就是说,为什么要使用声明2?)
【问题讨论】:
-
查看这里cdecl.org
-
@machine_1 - 参考很接近,我还明确要求了解
()对声明的影响。 -
与这个问题stackoverflow.com/questions/25790789/…(和其他)相比,它并不是非常独特
-
@BoPersson - 通过一级间接,该链接指向我上面提到的完全相同的链接。不过谢谢。
-
@R Sahu - 请看我上面的编辑。