本文へスキップ
BecomeCoder

C言語コース · 第4章 関数 · レッスン15

引数と戻り値 ― 値を渡して結果を受け取る

ブラウザで完結

導入

引数で値を渡し、return で結果を返す関数を作ります。「入力を受け取り、結果を返す」部品の基本形です。

説明

引数には型を付けて宣言します。return で返す値の型が、関数の戻り値の型になります。

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main(void) {
    int result = add(3, 5);    // 戻り値を受け取る
    printf("%d\n", result);    // 8
    printf("%d\n", add(10, 20));   // 直接使ってもよい
    return 0;
}

戻り値の型は用途に合わせます。面積を小数で返すなら double、真偽を返すなら(C には昔から真偽専用の型がないので)int10 を返すのが定番です。

#include <stdio.h>

double area(double w, double h) {
    return w * h;
}
int is_even(int n) {
    return n % 2 == 0;    // 真なら 1、偽なら 0
}

int main(void) {
    printf("%.1f\n", area(4.0, 2.5));   // 10.0
    printf("%d\n", is_even(6));         // 1
    return 0;
}

double を表示する %.1f は「小数第1位まで」の書式です。

やってみよう

add に渡す数を変えて結果を確かめましょう。is_even にいろいろな数を渡してみてください。

演習

2つの int を受け取り、そのを返す関数 multiply を定義し、multiply(6, 7) の結果を表示してください(結果は 42)。

ヒント1を見る

int multiply(int a, int b) { return a * b; }mainprintf("%d\n", multiply(6, 7));

実際に動かしてみよう

下のエディタにCを書いて「実行」を押すと、ブラウザ内のインタプリタで出力が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう(scanf を使う回は「標準入力」欄に値を入れてから実行します)。

C/C++ — ブラウザ内で実行

ブラウザ内でC/C++を動かす学習用インタプリタ(JSCPP)を読み込みます(入門向けのサブセットです)。
スクロールして表示された時点でも自動で読み込まれます。