<C言語>引数と戻り値
今回の記事でわかること
- 関数に値を渡す「引数」の使い方が分かる
- 関数から値を返す「戻り値」の使い方が分かる
- 引数と戻り値を組み合わせて便利な関数が作れる
引数と戻り値とは
- 引数 関数に「値を渡す」ためのもの。呼び出し時に必要な情報を持たせる
- 戻り値 関数が「処理した結果を返す」ためのもの。関数呼び出しの後で受け取って利用できる
簡単に言うと「入力(引数)」と「出力(戻り値)」みたいなイメージ
関数の定義方法
戻り値の型 関数名(引数の型 引数名, ...) {
// 処理
return 戻り値; // 戻り値がある場合
}
ポイント
項目 | 説明 |
---|---|
引数の型 引数名 | 呼び出し時に渡される値を受け取る |
複数の引数 | カンマで区切って書ける |
return 文 | 値を返す。戻り値の型と一致する必要がある |
void | 引数なし / 戻り値なしの場合に使用 |
関数を用いた実例
引数あり・戻り値なし
#include <stdio.h>
// 引数で名前を受け取り、表示する関数
void greet(char name[]) {
printf("こんにちは、%s さん!\n", name);
}
int main(void) {
greet("○○");
greet("××");
return 0;
}
/* 出力結果
こんにちは、○○ さん!
こんにちは、×× さん!
*/
引数を使えば、同じ処理を「入力によって変化」させることができる
引数あり・戻り値あり
#include <stdio.h>
// 2つの整数を受け取って、合計を返す関数
int add(int a, int b) {
return a + b;
}
int main(void) {
int result = add(5, 7);
printf("合計は %d です\n", result);
return 0;
}
/* 出力結果
合計は 12 です
*/
戻り値を受け取って変数に代入できるので、計算や判定処理に使いやすい
複数の引数
#include <stdio.h>
// 3教科の点数を受け取り、平均を返す関数
double average(int a, int b, int c) {
return (a + b + c) / 3.0;
}
int main(void) {
double avg = average(70, 85, 90);
printf("平均点は %.2f です\n", avg);
return 0;
}
/* 出力結果
平均点は 81.67 です
*/
なぜ関数を使うのか
現時点では、コードが短く使用回数も1回であるため、「main に全部書けばいいのでは?」と思う方もいるかもしれません。ですがプログラムを作っていくと、同じような処理を何度も書く場面が必ず出てきます。そのたびにコピペして書くのは大変ですし、修正が必要になった時に全部直さないといけません
そんな時に便利なのが関数です
- 共通処理を一つの関数にまとめる
- 何度も呼び出して使える
- 修正があった場合も関数を治すだけで済む
つまり「再利用性が高く、保守性のあるコードが書ける」ようになるのが関数の強みです