K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[2296] 「関数へのポインタにおける混乱」の「intを返す」という記述について
投稿者:jcv
2022/06/13 17:38:41

3-5-4 関数へのポインタにおける混乱(C言語 ポインタ完全制覇(旧版)) 3-5-5 関数へのポインタにおける混乱(C言語 ポインタ完全制覇(第2版)) の、以下の記載に関してです。 > しかし,C の宣言をここまでに述べた規則に基づいて解釈すれば,たとえばint func();という宣言において,funcは「intを返す関数」であり,funcだけを取り出して「intを返す関数へのポインタ」になるのは変です.関数へのポインタが必要なら,&を付けて,&funcとしなければならないはずです. この文章ですが、何度か読んでいるのですが、実は今迄理解出来ていませんでしたが、読み飛してしまっていました。今回、改めて読み直してやっと理解する事が出来ました。わかってしまえば、大した事ではないのですが、他の方が同じ疑問を持たれている可能性もありますので、お知らせしておきます。 上記文章では「intを返す関数」と、『intを返す』が「」の中に入って強調されていますが、実はここではintを返す事自体は重要ではありません。 これがわかりにくくしていると思います。仮に「intを返す」を抜いてみると、 > しかし,C の宣言をここまでに述べた規則に基づいて解釈すれば,たとえばint func();という宣言において,funcは「関数」であり,funcだけを取り出して「関数へのポインタ」になるのは変です.関数へのポインタが必要なら,&を付けて,&funcとしなければならないはずです. となります。この方がずっと理解しやすくなると思います。もし、「intを返す」を入れるのであれば、以下の様に括弧に入れた方が良いと思います。 > しかし,C の宣言をここまでに述べた規則に基づいて解釈すれば,たとえばint func();という宣言において,funcは(intを返す)「関数」であり,funcだけを取り出して(intを返す)「関数へのポインタ」になるのは変です.関数へのポインタが必要なら,&を付けて,&funcとしなければならないはずです. いかがでしょうか?
[この投稿を含むスレッドを表示] [この投稿を削除]