- ベストアンサー
returnの使い方
c言語初心者です。 returnを使って違う関数からはじめのmainのプログラムに戻したいのですが、引数の使い方がいまいちよくわかりません。 どなたか良い方法を教えてください。 よろしくおねがいします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 返答からは、なにか根本的な勘違いがあるようです。 「引数」は、「ある関数Aから呼ばれる関数Bに対して、AがBに対して値を渡す為に使用する宣言」、 「return」は、「ある関数Aから呼ばれた関数Bが、実行した結果を返す為に使用する命令文」です。 「呼び出された関数に戻る」であって、「関数の先頭に戻る」ではありません。 >returnを使って違う関数からはじめのmainのプログラムに戻したいのですが については、 ----------- int func1() { return 0; } main() { int a; a = func1(); } ----------- で質問を満たします。 また >引数の使い方がいまいちよくわかりません。 については ----------- func2( int b ) { ; } main() { int a = 0; func2( a ); } ----------- のようなものが回答になります。 一番の問題は >プログラムを初期画面に戻すようにしたいのですが、プログラムが終わると終了してしまうのです。 が質問文に無かったことです。 この一文があれば遠回りすることはありませんでした。 なお、質問者さんの言う「初期画面」とはどのような画面のことですか?
その他の回答 (5)
- asuncion
- ベストアンサー率33% (2127/6289)
>funcという戻り値が何故でてきたのですか? funcは関数の名前の例です。戻り値のことではありません。 >returnを使って違う関数からはじめのmainのプログラムに戻したい ここで書かれている「違う関数」の例として、funcを挙げました。
お礼
ありがとうございます。 みなさんのおかげでなんとか理解できました。
- cyacya2000
- ベストアンサー率54% (39/71)
以下のようなプログラムで答えになっていますか? void main(){ : : while(1){//無限ループ : 初期画面を出す処理 : if(fun(xxx)==-1) break;//funからー1が戻ってきたらループを抜けて終了。それ以外は続行 } 終了処理 } int fun(xxx){ if(異常終了か?)return -1;//終了したいときは-1を返す 正常処理 return 0;//初期画面に戻りたいときは-1以外を返す }
お礼
ありがとうございます。 なんとか理解できました。
- cyacya2000
- ベストアンサー率54% (39/71)
return の次に書くものを引数と呼んでいるのでしょうか? 実際これを引数とはよびませんが・・・・・・。 以下のプログラムが参考になりますか? #include <stdio.h> int fun(int i,int j);//プロトタイプ宣言 void main(){ int j; j=fun(10,20); //10+20がjに代入される printf("%d\n",j); } int fun(int i,int j){ //funの前のintはfunが返す値の型 int result; result=i+j; return result; //return文の次に書く変数の型はfunが返す値の型と同じ } int fun・・・なので、resultの型はintでなければなりません。 funの本体は以下でもOKです(returnの次に式を書いてもOK) int fun(int i,int j){ return i+j; //return文の次に書く式を評価した型はfunが返す値の型と同じ }
補足
私の質問の仕方が悪かったです。 プログラムを初期画面に戻すようにしたいのですが、プログラムが終わると終了してしまうのです。 そのためにreturnを使ってうまくプログラムを初期画面に戻すことで完成させることができると考えたのですが、、、うまく伝わらなかったですね。 申し訳ないです。
- SilverThaw
- ベストアンサー率32% (260/806)
>引数の使い方がいまいちよくわかりません。 引数のどういったところが「いまいち」理解できませんか?
- asuncion
- ベストアンサー率33% (2127/6289)
returnの使い方と引数の使い方は、全く別の話です。 ある関数funcが、呼び出し元のmainにreturnするのは、funcの戻り値です。 引数は、mainからfuncを呼び出すときにfuncに与えるデータです。 どちらのことが知りたいのでしょうか?
補足
funcという戻り値が何故でてきたのですか? 初心者で申し訳ないです。
お礼
ご丁寧にどうもありがとうございました。 大変参考になります。