1. ホーム
  2. c

[解決済み] C 言語の配列へのポインタ/ポインタの配列の曖昧さ解消

2022-03-20 02:06:18

質問

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

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

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

どのように解決するのですか?

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

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

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