K&R の The C Programming Languageブックには、すでに読んだことがあるかもしれないが、同じタイトルの「複雑な宣言」というセクションがある。私はちょうど本を読んで、C言語で自分自身を改善しようとしています. 上記のセクションを読んだ後、C 宣言ステートメントの構文の背後にあるロジックを取得できなかったと思います。1、2、3、および 4 はそのセクションの 5 と 6 は他のページからのものです。
int (*daytab)[13]
daytab: int の配列 [13] へのポインタvoid (*comp)()
comp: void を返す関数へのポインタchar (*(*x())[])()
x: char を返す関数へのポインタの array[] へのポインタを返す関数char (*(*x[3])())[5]
x: char の配列 [5] へのポインターを返す関数へのポインターの配列 [3]typedef int (*PFI)(char *, char *)
int を返す (2 つの char * 引数の) 関数へのポインターの型 PFI を作成します。ここで構文はどのように機能しますか?
最後に、私の質問は次のとおりです。
- 上記の例を使用して、複雑な宣言の考え方と読み方を説明できますか?
- 1、3、4のようなものは実用的で必要ですか?もしそうなら、いくつかのコード例を書いてもらえますか?