C变量声明

时间:2011-10-12 15:50:13

标签: c

之间有什么区别
char *a[10];

char *(a[10]); 

我总是使用第一个用于char指针的数组,但现在我发现代码使用了第二个。
由于我不确定它是否是同一个东西,我打印了sizeof()并返回80(64位操作系统)所以我倾向于认为两者都是相同的(一个char指针数组)。

但由于我在网上找不到任何解释或使用*([])语法,我正在寻找一些确认。

由于

2 个答案:

答案 0 :(得分:11)

这两个是等价的,代表一个指向char的10元素指针数组。

char (*a)[10]对比,char是指向{{1}}的10个元素数组的指针。

如果有疑问,可以使用cdecl来解读C声明。在Unix上,它通常作为命令行工具提供。还有online version

答案 1 :(得分:1)

char *a[10];char *(a[10]);是相同的。为了说清楚,我们这样说,char *a[10];pointer array的10,后来是10的数组all are pointers!你看到两者都是不同的说法。