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