我有以下代码:
const int N=3;
static double * p[N];
p代表指向N维双数组的静态指针,还是代表静态指针的N维数组?
此外,我发现以下更改未能编译,并且不确定原因......
int N=3;
static double * p[N];
答案 0 :(得分:2)
p代表指向N维双数组的静态指针,还是代表静态指针的N维数组?
几乎第二个选择一个N大小的数组,每个元素代表一个静态指针。注意从“N维”到“N大小”的变化。谢谢@David。
此外,我发现以下更改未能编译,并且不确定原因......
数组的大小需要常数整数。删除N
的“常量”后,p
的大小在编译时是不确定的。
答案 1 :(得分:1)
p
是一个由double
组成的3个指针的静态数组。
编译器要求在编译时知道数组的大小,这就是为什么只能使用const int
而不是int
来表示数组大小声明。
答案 2 :(得分:0)
cdecl> explain static double *p[10];
declare p as static array 10 of pointer to double
还有cdecl.org可以在线获得这种帮助。