2

別の質問への回答でこれを見ました:

char (*arrs)[rowSize] = malloc(bytesPerTable);

アーズとは?/ 括弧があるのはなぜですか / この宣言の説明は何ですか?

4

2 に答える 2

4

アーズとは?この宣言の説明は何ですか?

これは の配列へのポインターであり、へのポインターとrowSize charは大きく異なりますchar

なぜ括弧があるのですか

それらがないと、へのポインターの配列になるためcharです。

于 2012-08-17T11:56:19.227 に答える
2

int *a[10]-つまり、aは10要素の配列であり、要素タイプはint *次のとおりです。変数のサイズはa、32ビットマシンでは40バイト、64ビットマシンでは80バイトになります。

int (*a)[10]-これは、aがポインタ変数であり、そのサイズが4バイト(または8バイト)になることを意味します。これは、以下のようなintサイズの配列のアドレスを保持でき10ます。

int (*a)[10] = NULL;
int b[10] = {0};
a = &b;
于 2012-08-17T12:08:13.073 に答える