Skip to content

7. 関数

7.3 返り値

7.3.1 返り値の実装

逆に、関数が値を返すときは以下のように実装する。

cpp
#include <iostream>
using namespace std;

int ten() {
    return 10;
}

int main() {
    int x = ten();

    cout << x << endl;
}
Output
10

この時、この「10」を返り値と呼ぶ。(10をreturnする → 10を返す)

返り値の型は、関数名の前で宣言している。引数の話とまとめると、関数の定義方法は次の通り。

cpp
<返り値の型> <関数名> ([引数の名前、型]) {...

返り値の型も自分で好きなように宣言できる。ただし複数の返り値を返すことはできない。

main関数の返り値はint型である。他の関数の返り値はすべて呼び出した側に渡されるように、main関数の返り値はOSに渡される。このOSに渡す値は「終了コード」と呼ばれ、正常時は0を返すことが定められている。

なので本来ならばmain関数にも関数末尾にreturn 0を書かなければならないが(そういうテキストも多い)、それを省略しても良いという事になっている(省略すると末尾にreturn 0が自動的に追加される)。

関数の返り値がないときは、他の型の代わりにvoid型を用いる。この場合、return文は省略できる。(書きたい場合はreturn;と書く)。

cpp
#include <iostream>
using namespace std;

void hello() {
    cout << "Hello!" << endl;
}

int main() {
    hello();
}

引数と返り値を組み合わせることで、数学のような関数が実装できる。

cpp
#include <iostream>
using namespace std;

int square(int n) {
    return n*n;
}

int main() {
    cout << square(10) << endl;
}
Output
100

このsquare関数は、引数を受け取り、を返す関数である。