0

次のコードがあります。

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

p は、N 次元 double 配列を指す静的ポインター、または各要素が静的ポインターを表す N 次元配列を表しますか?

また、次の変更がコンパイルに失敗したことがわかりましたが、その理由はわかりません...

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

3 に答える 3

2

p は、N 次元 double 配列を指す静的ポインターを表しますか、それとも各要素が静的ポインターを表す N 次元配列を表しますか?

ほぼ 2 番目の選択肢は、各要素が静的ポインターを表す N サイズの配列です。「N 次元」から「N サイズ」への変更に注意してください。ありがとう@デビッド。

また、次の変更がコンパイルに失敗したことがわかりましたが、その理由はわかりません...

配列のサイズには、定数の整数が必要です。Nのサイズの「constness」を削除した後はp、コンパイル時に不確実です。

于 2012-12-18T23:10:09.390 に答える
1

psへの 3 つのポインターの静的配列ですdouble

コンパイラでは、コンパイル時に配列のサイズがわかっている必要があります。これが、配列サイズの宣言にa のみを使用できconst int、 anを使用できない理由です。int

于 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 に答える