引数


引数を使ってデータをサメ関数に渡してみましょう。
ぱくぱく・・
ねえ、サメ関数が酸素不足でぱくぱくしてるよ。
じゃあ、酸素変数を渡してあげましょう。
み・・・水。


今回は、今まで避け続けてきた引数(ひきすう)についてやりましょう。
まあ、これまでも実際に使っていたので、意外と早くなじめるかもしれません。
それでは、早速引数を使ったソースを見てみましょう。

01:#include <stdio.h>
02:
03:void function1(int x)
04:{
05:  printf("x=%d\n",x);
06:}
07:
08:int main()
09:{
10:  function1(3);
11:  return 0;
12:}

----------
実行結果
----------
x=3

main関数の10行目でfunction1関数を呼び出しています。
ただし、これまでの関数の呼び出しと違うのは、
引数に 3 を付けているということです。

続いて、function1関数の処理ですが、変数xの値を表示します。
といっても、変数xは中括弧 {} のなかで宣言されておらず、
変わりに関数名に続く括弧 () のなかで宣言されています。

直感的に理解できた人も多いと思いますが、
function1関数を呼び出す時に書いた 3 がfunction1関数の変数xに代入されています。
少しばかし引数を解ってもらえたでしょうか?

関数の定義時に括弧の中に書く変数(上ソース3行目)のことを「仮引数」といいます。
また、関数呼び出し時に括弧の中に書く数値or変数(同10行目)を「実引数」といいます。
仮引数、実引数はコンマ(,)で区切って複数かけます。
また、関数呼び出し時に書いた実引数が仮引数に代入されます。

仮引数の数、実引数の数は一致していなければなりません。
例えば上ソースの10行目をfunction1(3,5); のようにすると、
コンパイルエラーが発生します。

もう一点注意が必要なのは、仮引数を複数宣言する時は、
(データ型 引数1,データ型 引数2,...) といった感じに、
毎回データ型を書かなければならないことです。
void f(int x,y) ではなく、void f(int x,int y) だということです。

引数がよく解らなくても、いやでも使っていくので、
いずれ使い方が解ってくるのでご安心を(?)