之间有什么区别
char *a[10];
和
char *(a[10]);
我总是使用第一个用于char指针的数组,但现在我发现代码使用了第二个。
由于我不确定它是否是同一个东西,我打印了sizeof()并返回80(64位操作系统)所以我倾向于认为两者都是相同的(一个char指针数组)。
但由于我在网上找不到任何解释或使用*([])语法,我正在寻找一些确认。
由于
答案 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
!你看到两者都是不同的说法。