C ポインタから配列/ポインタの配列への曖昧さの解消 質問する

C ポインタから配列/ポインタの配列への曖昧さの解消 質問する

次の宣言の違いは何ですか?

int* arr1[8];
int (*arr2)[8];
int *(arr3[8]);

より複雑な宣言を理解するための一般的なルールは何ですか?

ベストアンサー1

int* arr[8]; // An array of int pointers.
int (*arr)[8]; // A pointer to an array of integers

3番目は1番目と同じです。

一般的なルールは演算子の優先順位関数ポインターが登場すると、さらに複雑になる可能性があります。

おすすめ記事