私は最近、int 配列型を定義するこの非正統的な方法に出会いました。
typedef int(array)[3];
最初は関数ポインタの配列だと思っていましたが、*
と が()
欠落していることに気付きました。そこでコードを調べてみると、配列型は型であるとint[3]
推測できました。通常、この型は次のように宣言します。
typedef int array[3];
これらが同じものではないと私が誤解していない限り、関数ポインターに似せる以外に、前者の方法で行う利点は何でしょうか?
ベストアンサー1
typedef int array[3]
との違いは何ですかtypedef int(array)[3]
?
それらは同じです。
ポインターを宣言するときに括弧を使用すると*
、 と が異なる型になることがあります。その場合、括弧は[]
またはの優先順位に影響を与える可能性がありますint
。ただし、これは今回のケースには当てはまりません。