関数とプログラムの構造について
引数
関数の説明で触れましたが、関数には引数を用いることによって値を受け渡すことができます。関数は基本的に値渡しと呼ばれ、値のみを関数に渡すため、呼び出し元の変数の値は変わりません。
int main( int argc , char *argv[] )
{
(中略)
m = max( n1 , n2 );
(中略)
}
int max( int a, int b )
{
int value ;
if ( a >= b ) {
value = a;
}
else {
value = b;
}
return ( value );
}
上記の例では、2つの引数の大きい値を返却値として返すmax関数をmain関数から呼び出す動きをしています。ここで、実際に関数を呼び出す際に渡しているn1やn2を実引数と呼び、呼び出された関数内で使用するために定義しているaやbを仮引数と呼びます。関数を作成する際には、同じ処理があった場合に何度でも呼び出すことが出来るため、機能ごとに関数を作成することにより、効率的なプログラミングを行なうことができます。仕様に変更を加える場合でも、関数によって処理が共通化されているためにメンテナンス性も向上します。
さて、上記の例でmain関数にも引数が記述されていることに気が付きましたでしょうか?C言語でプログラミングをして、コンパイルによって実行ファイルを作成したあとに実行する際、マウスでダブルクリックをすると引数はない状態で起動されますが、コマンドプロンプトからの実行や別のプログラムなどから実行する場合には引数を与えることができます。第1引数のargcには引数の個数、配列argv[1]から順に引数が格納されています。argv[0]は実行中のプログラム名であるため、利用することは少ないでしょう。