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としなければならないはずです. いかがでしょうか?
パスワード:

管理者削除