指向N个数组的静态指针,还是指向N个静态数组的指针?

时间:2012-12-18 23:08:25

标签: c++ c

我有以下代码:

const int N=3;
static double * p[N];

p代表指向N维双数组的静态指针,还是代表静态指针的N维数组?

此外,我发现以下更改未能编译,并且不确定原因......

int N=3;
static double * p[N];

3 个答案:

答案 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可以在线获得这种帮助。