関数の型が引数の型なのですか?関数の型と引

Writer: admin Type: 消費者問題 Date: 2019-03-06 00:00
関数の型が引数の型なのですか?関数の型と引数の型は別物ですか?共感した0###別物です。基本的には、関数の型と言うと、宣言されたり関数の形を指します。int func(int, int);みたいなやつです。この場合だと、『引数に整数を2つ持ち、返り値が整数である関数』というのが全体でfunc関数の型になります。関数ポインタと呼ばれる機能では、この関数の型が同じ関数同士をまとめて扱う事ができます。一方、文脈によっては、関数の返り値の型のことを関数の型と呼ぶ場合もあるとは思います。しかし、その場合は「関数の返り値の型」とか、「○○型の返り値を持つ関数」とかいうふうに言ったほうが良いです。関数そのものがその型の変数として機能する訳ではありませんので。(そういう誤解をしている人をたまに見かけます)引数の型の事を関数の型と呼ぶ事は無いです。ナイス0
###この回答は投票によってベストアンサーに選ばれました!###> 関数の型が引数の型なのですか?いいえ。> 関数の型と引数の型は別物ですか?はい。言語 によります。こういう質問するなら、言語 は明記したほうがいい。C言語族のことなら、私の感覚は khu********さん と同じです。「関数の型」という厳密な用語? はないと思うが、こういう言い方されたら、関数宣言シグネチャのうち、関数名 や 仮引数名 を除いた部分全部をイメージする。strcmp の 関数の型 はint (*)(const char*, const char*)です。ただ、既に書いたように 言語 によります。関数も差別無くオブジェクト という言語もあれば、仮引数名 もシグネチャに含まれる言語もある。中には、(そのいずれでもない)名前 を採る言語もある。(Swift の label)ナイス0
###すでにいくつか回答されている通り、両者は別物です。たとえば、昔からあるポピュラーな標準ライブラリ関数のひとつである strcmp() は、次のような形で説明されることが多いでしょう。int strcmp( const char * s1, const char * s2 )この1行の中には、次に挙げる情報が詰まっています。・関数の返り値の型は int である・関数の名前は strcmp である・関数の仮引数は2つある・第1仮引数の型は const char * である・第2仮引数の型は const char * である以上の記載において、仮引数の型については明確です。2つとも const char * であると分かります。しかし「関数の型」と言う場合、それは「関数の返り値の型」であるのか、「仮引数の情報まで含めた型」を指すのか、判然としません。私自身は、後者の立場です。なぜならば、C の関数は、int や double や char ポインタを返すだけでなく、「関数へのポインタ」を返すこともできるからです。関数へのポインタとは、何らかの関数を指し示すであろうポインタ型です。たとえば、strcmp() を指し示すことができる関数ポインタ f は、次のように宣言できます。int ( * f )( const char *, const char * );/* f はポインタであり、int(const char *,const char *) 型の関数を指す */とは言っても、「関数の型」と言う時、それが「関数の返り値の型」を指して言っている場合も多々ありますので、どちらを指して言っているのかは、注意深く読み取らねばならないでしょう。参考までに、関数ポインタを使った簡単なサンプルを挙げておきます。実行する前に、どういう実行結果になるか、予想してみてください。http://khurata.dyndns.dk/QA/q10203691785.c.txt(ダウンロードして使う際は拡張子 .txt を取り除いてください)ナイス0
###>関数の型と引数の型は別物ですか?別物です。引数は関数に与える物で、関数は戻り値で値を戻します、これが関数の型です 。ナイス0
###【関数の型が引数の型なのですか?】(1)戻り値の型double f() {return 0.1;}関数 f の型は double であると言うことが出来ます。「戻り値の型」と言った方が良いと思いますが。(2)関数の仕様戻り値の型と引数仕様(C 言語、C++ であれば呼び出し規約も)を含めて「関数の型」と言うことも可能です。どちらなのかは文脈によると思います。「関数の型」の前後に何が書いてありますか?それ次第でしょう。『引数の型なのですか?』そのような意味合いで「関数の型」と言うことがあるかどうか、ちょっと…。【関数の型と引数の型は別物ですか?】別物としておくのが無難だと思います。ナイス0
###関数の型には戻り値の型と、引数の型があります。引数は関数に与えるパラメータ戻り値は、結果として帰ってくる値。両方とも別々の型にする事が可能です。言われてみればどちらも関数の型と言いますねナイス0

 

TAG