C变量声明

Fil*_*ina 5 c

有什么区别

char *a[10];
Run Code Online (Sandbox Code Playgroud)

char *(a[10]); 
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢

NPE*_*NPE 11

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

对比char (*a)[10],这是一个指向10元素数组的指针char.

如果有疑问,可以cdecl用来解读C声明.在Unix上,它通常作为命令行工具提供.还有一个在线版本.