- ベストアンサー
C言語 関数の戻り値について
C言語で関数を作る場合に最後にreturnで戻り値を設定しますよね? 自分はあまりそれがわかりません。 関数で出た答えを返すって言うのはわかるんですが、 returnが無くても大丈夫だったりreturnはあってもその後に戻り値を設定していなかったり。 何故returnがなくても動作するのでしょうか? 何故returnまであるのに戻り値は設定されていないのか? 教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
これはCに限らない話で、関数イコール戻り値、ではないからです。 returnがない場合、returnのみ書かれている場合、どちらも「関数の戻り値」を必要としていないんです。 例えば、何らかの変数に何らかの値を入れる関数。これ、関数自体の戻り値は必要ありませんよね。 ちなみに、return単品で書かれている場合、関数内の一連の処理や分岐の中で特定の条件の時にその処理を切り上げるという意図の場合が多いです。
その他の回答 (3)
- asuncion
- ベストアンサー率33% (2127/6290)
>C言語で関数を作る場合に最後にreturnで戻り値を設定しますよね? ここだけを読むと、質問者さんは「すべての関数には戻り値がある」と主張されているように見えます。一方、 >returnが無くても大丈夫だったりreturnはあってもその後に戻り値を設定していなかったり。 ここだけを読むと、質問者さんは「すべての関数に戻り値があるとは限らない」と主張されているようにも見えます。 前者と後者の主張は矛盾しています。 結局のところ、何がおっしゃりたいのでしょうか。
- TinyPine
- ベストアンサー率30% (719/2386)
>C言語で関数を作る場合に最後にreturnで戻り値を設定しますよね? 戻り値が必要な関数はそうします。 >何故returnがなくても動作するのでしょうか? その関数が戻り値を必要としていないからです。 >何故returnまであるのに戻り値は設定されていないのか? returnは戻り値を返す機能と、関数を途中で打ち切る機能を持っています。 あと、当然、return文が無くても、関数の最後の"}"が来れば関数を終了します。
- alwen25
- ベストアンサー率21% (272/1253)
>何故returnがなくても動作するのでしょうか? これで、本当に動くのでしょうか。 例を書いてください。 >何故returnまであるのに戻り値は設定されていないのか? 戻り値のない(void型)の関数ということです。 嫌ならば関数をint型などにして return 0; などとしてください。