0

我有以下代码:

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

p 代表指向 N 维双精度数组的静态指针,还是每个元素代表一个静态指针的 N​​ 维数组?

我还发现以下更改编译失败,不知道为什么......

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

3 回答 3

2

p 代表指向 N 维双精度数组的静态指针,还是每个元素代表一个静态指针的 N​​ 维数组?

几乎第二个选择是一个 N 大小的数组,每个元素代表一个静态指针。注意从“N 维”到“N 大小”的变化。谢谢@大卫。

我还发现以下更改编译失败,不知道为什么......

数组的大小需要常量整数。删除“常量”后N的大小p在编译时是不确定的。

于 2012-12-18T23:10:09.390 回答
1

p是一个由 3 个指向doubles 的指针组成的静态数组。

编译器要求在编译时知道数组的大小,这就是为什么您只能使用 aconst int而不是 aint来声明数组大小的原因。

于 2012-12-18T23:10:08.630 回答
0
cdecl> explain static double *p[10];
declare p as static array 10 of pointer to double

还有 cdecl.org 可以在线获得这种帮助。

于 2012-12-19T12:59:52.520 回答