C言語入門|関数に複数の値を渡す

引数を1つ使えるようになると、
関数はぐっと便利になりましたよね。

でも、プログラムを書いていると、
こんな場面にすぐ出会います。

「うーん、この処理、
 値を2つ同時に渡せたら一気に楽になるのに……」

安心してください。
関数には、引数を2つ以上渡すことができます。

ここからは、
関数をさらにパワーアップさせる
複数引数の使い方 を見ていきましょう。

引数は何個でも渡せる

C言語の関数では、

  • 引数は1つだけ
  • 引数は整数だけ

といった制限はありません。

必要であれば、

  • 2つ
  • 3つ
  • それ以上

の値をまとめて関数に渡せます。

これができるようになると、
関数は「ちょっとした処理」から
実用的な部品 へと進化します。

複数の引数を使った例

では、サンプルを見てみましょう。
参考コードとは内容を変えています。

プロジェクト名:8-7-1 ソースファイル名: sample8-7-1.c

#include <stdio.h>

void showRange(int start, int end)
{
    printf("範囲は %d から %d までです\n", start, end);
}

int main(void)
{
    int min = 10;
    int max = 50;

    showRange(min, max);
    showRange(100, 200);

    return 0;
}

関数呼び出し側の書き方

複数の引数を渡す場合、
呼び出し側では次のように書きます。

showRange(min, max);

ポイントはとてもシンプルです。

  • 引数はカンマで区切る。
  • 左から順に渡される。」

この例では、

呼び出し時の指定渡される値
min10
max50

という形で、
2つの値が関数に送られています。

関数定義側の書き方

次に、関数を定義する側を見てみましょう。

void showRange(int start, int end)

ここでもポイントは同じです。

  • 型 変数名 を並べる
  • カンマで区切る

関数が呼び出されると、

  • 1番目の値 → start
  • 2番目の値 → end

という対応関係で、
自動的に代入されます。

引数の対応関係を表で整理

複数引数は、
順番がとても重要 です。

呼び出し時関数内
showRange(10, 50)start = 10
end = 50

もし順番を逆にすると、

showRange(50, 10);

関数内では、

  • start が 50
  • end が 10

となり、
意味がまったく変わってしまいます。

型と数が合わないとどうなるか

引数にはルールがあります。

  • 数が合っているか
  • 型が一致しているか

このどちらかが崩れると、
コンパイルエラーになります。

たとえば、次のようなケースです。

void funcA(int x, int y)
{
}

int main(void)
{
    funcA(100);
}

この場合、

  • 受け取る引数は2つ
  • 渡している値は1つ

となるため、
正しく対応できずエラーになります。

また、型が違う場合も同様です。

流れ考えるとこうなる

複数の引数は、
箱が横に並んでいる と考えるとわかりやすいです。

  • 1つ目の箱 → 1つ目の値
  • 2つ目の箱 → 2つ目の値

呼び出す側は、
その箱の並びを意識して値を渡す必要があります。

引数のある関数の基本構文

ここで、改めて構文を整理しておきましょう。

引数のある関数の定義

void 関数名(型 引数名, 型 引数名)
{
    処理内容
}

引数のある関数の呼び出し

関数名(値, 値);

関数定義の1行目を見るだけで、

  • 引数の数
  • 引数の型
  • 呼び出し方

がすべてわかるようになっています。

関数の1行目は「取扱説明書」

関数定義の1行目は、
関数を使う人へのメッセージです。

  • この関数は何という名前か
  • どんな値を何個渡せばよいか

これがすべて表明されています。

だからこそ、

  • 引数の順番
  • 引数の意味
  • 名前のわかりやすさ

がとても重要になります。

まとめ:複数引数で関数は一気に実用的になる

最後にポイントを整理しましょう。

項目内容
引数は複数渡せる
区切り方カンマで区切る
対応関係順番で決まる
注意点型と数を揃える

複数の引数を使えるようになると、
関数は「便利な道具」から
本格的な部品 へと変わります。

次は、
引数を使って 値を返す関数
計算結果を受け取る方法 に進んでいきましょう 😊