戻り値

さて、今回は避け続けてきた戻り値についてやります。
いきなりですが、関数というものは値を返します。
値というのは主に(というより全て)数値のことだと思っていただければいいと思います。
数学などで関数に慣れた人はこっちの方がぱっとするかもしれません。

まず、使い方を説明します。使い方は簡単
return 返す値;
とするだけです。
関数の呼び出しではないので括弧はいりません。

まだ実感はないかと思いますが、一応使い道を説明します。
大体使い方は2つほどあります。

1)計算結果を戻り値として返す
2)処理の成功、失敗を戻り値として返す

1の方は例を挙げると

1)関数Aから関数Bを呼ぶ
2)関数Bで計算をし、その結果を戻り値として返す
3)関数Aで関数Bの戻り値を利用する

これこそまさに数学的な関数の使い方です。
『y=f(x)』といったような感じですね。
実際に使うのはもう少し後にしましょう。

さて、続いて2の方ですが、これは数学とはかけ離れた、
まさに、プログラミングっぽい戻り値の利用法です。

1)関数Aから関数Bを呼ぶ
2)関数Bで処理をし、成功すれば 0 、失敗すると 1 を返す
3)関数Aで関数Bの戻り値が 1 であればエラーメッセージを表示する

さて、この戻り値で重要となってくるのが関数の「データ型」です。
このデータ型によって返す値の種類が変わります。

たとえば char というデータ型は -128〜127 、または 0〜255 までを返せます。
それではいくつかのデータ型とその詳細を示します。

主な型名
データ型確保するバイト数表せる範囲
char1byte-128〜127 or 0〜255
short2bytes-32768〜32767
intシステムに依存-
long4bytes-2147483648〜2147483647
float4bytes3.4E +/- 38 (7 桁)
double8bytes1.7E +/- 308 (15 桁)

int型はコンパイラによって大きさが変わります。
それはさておき、void型がありませんね。これには理由はあります。
void型は他のデータ型と異なり、void型の関数は戻り値を返せません。

というよりも、他のデータ型の関数は全て、
戻り値を返さなければならないといった方がいいのかもしれません。
現にint型のmain関数では return 0; という一行を書いていますね。

はっきり言って、これだけでは何のことかまったくわからないと思いますが、
これについては、後々やっていくので、ここではよくわからなくてかまいません。