関数の戻り値とデータ型

 変数には数値型や文字型といったデータの型を指定することを以前お伝えしました。復習します。

    整数型
  • short - 範囲:-32768~32767
  • unsigned short - 範囲:0~65535
  • int - 範囲:-2147483648・147483647
  • 4
  • unsigned int - 範囲:0・294967295
  • 9 小数型
  • float - 範囲:小数点以下が6桁
  • double - 範囲:小数点以下が15桁
  • 文字型
  • char(範囲:-128・27)

 実は関数にも、このようなデータ型を指定する必要があります。

 以下のプログラムを書いて、実行してみましょう。

#include <stdio.h>

int plus1(int x) {
    int y;
    y = x + 1;
    return y;
}

int main(int argc, const char * argv[])
{
    
    // insert code here...
    int x = 1;
    x = plus1(x);
    
    printf("x = %d", x);
    
    return 0;
}

 実行すると、以下のように出力されます。

x = 2

 今回のplus1関数も、変数の中の数値に1を足す処理内容の関数です。plus1関数の中でyという変数を定義し、引数として渡された数値に1を足したものをyに格納しています。

 以前のplus1関数と異なる点で特に重要なのは、return y;という1行がついている点です。更に、このplus1関数をmain関数で呼び出す際も、「x = plus1(x);」としている点に注目です。

 つまり、どういうことかというと、このplus1関数は、一連の処理の結果をreturnという文でmain関数に送っているのです。引数で受け取った数値に1を足したものをreturn文で送っています。main関数では、return文で返ってくる値を格納する変数としてxを指定し、「x = plus1(x);」と書いています。xには、先の数値から1を足した数が格納されています。

 このように、それぞれの関数にはデータ型を指定し、return文で、そのデータ型に合わせた値を返すように記述することができます。このreturnされる値のことを戻り値と呼んでいます。

 Tips:main関数でも最後に「return 0;」としているのは、main関数のデータ型がint型だからです。

■スポンサーリンク

このページの先頭へ