typedef int array[3]とtypedef int(array)[3]の違いは何ですか?質問する

typedef int array[3]とtypedef int(array)[3]の違いは何ですか?質問する

私は最近、int 配列型を定義するこの非正統的な方法に出会いました。

typedef int(array)[3];

最初は関数ポインタの配列だと思っていましたが、*と が()欠落していることに気付きました。そこでコードを調べてみると、配列型は型であるとint[3]推測できました。通常、この型は次のように宣言します。

typedef int array[3];

これらが同じものではないと私が誤解していない限り、関数ポインターに似せる以外に、前者の方法で行う利点は何でしょうか?

ベストアンサー1

typedef int array[3]との違いは何ですかtypedef int(array)[3]?

それらは同じです。


ポインターを宣言するときに括弧を使用すると*、 と が異なる型になることがあります。その場合、括弧は[]またはの優先順位に影響を与える可能性がありますint。ただし、これは今回のケースには当てはまりません。

おすすめ記事