【C言語入門】returnで関数の戻り値を返す方法

C言語には、関数の値を返す時などに使われるreturn文というのがあります。

return文はそれ以外にもmain関数の最後にも書かれています。

この記事では、return文について、

 

  • return文の意味
  • return文を使って戻り値を返す方法
  • ポインタを使って複数の戻り値を返す方法
  • return文で条件によって関数の処理を終了させる方法
  • 「return 0」と「return 1」の意味


 

 

などの応用的な使い方についても解説していきます。

return文とは

return文とは、関数を実行した結果とともに、関数を終了したいときに呼ばれる文のことです。

return文によって関数の呼び出し元にデータを渡すことを、値を返すと言います。また、その時に関数が返す値のことを戻り値と言います。

return文は次のように書きます。

また、戻り値をなしにしたいときは

のように書きます。

return文で戻り値を返す方法

return文は、関数が何らかの値を返す時や、関数の処理を終わらせたいときなどに使われます。

例えば、”Samurai”という文字列を返して欲しい場合は、次のように使用します。

実行結果:

このように、return文を使うことで、文字列などの値を返すことができます。

ポインタを使って複数の戻り値を返す方法

ここまで、return文を使って関数から1つ戻り値を受け取ることができました。

では、複数の戻り値が欲しい場合には、どうすれば良いのでしょうか?

実はC言語は、return文で複数の戻り値を渡すことができません。配列を使う方法もありますが、今回はポインタを使って解決します。

ポインタとは、変数がどこにいるのかを指し示す変数のことです。ポインタの値が変わると、ポインタが指す値も変わります。

アドレスを引数として使うことで、元々の変数の値も変えることができます。それにより、複数の戻り値を得ることができます。

例えば、2つの値を交換する時に使うことができます。

実行結果:

このように、ポインタを使うことで擬似的に複数の値を返すことができます。

ポインタについて詳しく知りたい方は、こちらの記事で解説しているのでぜひ確認してください!

【C言語入門】ポインタのわかりやすい使い方(配列、関数、構造体)
更新日 : 2019年4月23日

return文で条件によって関数の処理を終了させる方法

return文には、値を返すだけではなく、関数の処理を終了させることもできます。これを使うことで、条件によって関数の処理を途中で終了させることができます。

例えば、入力された値によって関数の処理を変えたいときに使われます。

以下のサンプルコードでは、値が1~10の範囲にあるかどうかを調べています。

実行結果:

このように、return文を使うことで、条件によって、関数の処理を終了させることができます。

「return 0」と「return 1」の意味とは?

さて、これまでのコードを見ていると、main関数にもreturn文が書かれているのがわかると思います。

main関数の最後には、

と書かれています。

このreturnの意味は、0を返せば正常終了、0以外なら異常終了という意味です。

return文とexit関数の違い

return文で、関数の処理を終了させることができました。

しかし、exit関数を使っても処理を終了させることができます。

return文では、関数の処理を終了し、値を返すことができるのに対して、exit関数とは、呼び出された瞬間に、プログラム全体の処理を終了させる関数です。

実際に、サンプルコードで確認して見ましょう。

実行結果:

このように、exit関数を使うことで、プログラム全体の処理を終了させることができます。

関数の使い方総まとめ

この記事では関数の戻り値を返すreturn文について解説しましたが、関数の様々な使い方については次の記事で詳しく解説しているので、ぜひ確認してください。

【C言語入門】関数の作り方、呼び出し方(宣言、引数、戻り値)
更新日 : 2019年4月24日

まとめ

いかがでしたか?

今回は、return文について解説しました。

return文はC言語の基本ですのでぜひ覚えてください。

もし、return文を使って値を返す方法を忘れてしまったらこの記事を確認してください!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

MoritaIssei

ご閲覧いただきありがとうございます。森田一世と申します。プログラマーとしてRaspberry piを使ったり、記事を作成しています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説