*C言語* 〜24時限目〜 引数について・・・
〜目次〜
引数を使って情報を渡す
関数は処理をまとめることに加えて、
さらに柔軟な処理を行うことができます。
関数を呼び出す際に、
呼び出し元から関数内に何らかの情報(値)を渡し、
その値に応じた処理を行う
という処理ができます。
関数に渡す情報のことを、
引数(argument)
と呼びます。
引数を使う関数の記述は以下の通りです。
//sell関数の定義
void sell(int price){ int型の引数を用意する
printf("%d円の本を売りました。¥n", price); 引数を関数内で使う
}
このsell関数は、
呼び出し元から呼び出されるときに、
int型の値を1つ、
関数内に渡すように定義したものです。
関数の( )内にある、「int price」が引数です。
引数priceはこの関数内だけで使うことができる
int型の変数になっています。
変数price(引数)は、
関数が呼び出されたときに、
呼び出し元から渡されるint型の値が格納されます。
このため、変数priceの値は関数内部の処理で使うことができます。
尚、変数priceは関数内以外の場所では使うことができません。
つまり、
この変数をmain( )関数内で使うことはできません。
引数を渡して関数を呼び出す
引数を持つ関数を呼び出す際には、
関数呼び出し文の( )の中に、
指定しておいた型の値を記述して、関数に値を渡します。
実際に以下のコードを入力してみてください。
sample53.c
ーsample53の実行画面ー
700円の本を売りました。
1000円の本を売りました。
このmain( )関数内では、
最初にsell( )関数を呼び出す際に、「700」という値を渡して呼び出す
次にsell( )関数を呼び出す際に、「1000」という値を渡して呼び出す
という処理を行なっています。
このように引数を使うことで、
柔軟な関数を作成できるのです。
関数の本体で定義されている引数(変数)のことを、
仮引数(parameter)
と呼びます。
一方、関数の呼び出し元から渡される引数(変数)のことを、
実引数(argument)
と呼びます。
キーボードから入力する(関数)
引数についてさらにやっていきます。
今回はキーボードから入力した値が関数内に渡されるようにします。
以下のコードを入力してみてください。
sample54.c
ーsample54の実行画面ー
1冊目はいくらの本を売りますか?
700
700円の本を売りました。
2冊目はいくらの本を売りますか?
10000
10000円の本を売りました。
このようにして、
main( )関数内で変数を用意して、
キーボードからの入力を読み込ませ、
関数に渡すことができます。
C言語では、関数に渡されるのは変数numそのものではなく、
そこに格納されている値となっています。
このような引数の渡し方を、
値渡し(pass by value)
と呼ぶことがあります。
複数の引数をもつ関数を使う
関数には2個以上の引数を持たせることができます。
関数を呼び出す際に、
複数の値を関数内に渡して処理することができるのです。
実際にコードを入力して見てみます。
sample55.c
ーsample55の実行画面ー
いくらの本を売りますか?
700 (1つ目の引数)
いくらの本を売りますか?
1000 (2つ目の引数)
700円と1000円の本を売りました。
複数の引数を持つ関数でも、
基本は同じです。
呼び出す際に、複数の引数をカンマで区切ってください。
この複数の引数のことを、
引数リスト
と呼ぶことがあります。
そうすることで、
区切った順に、実引数が仮引数に渡されます。
尚、仮引数と異なる数の実引数を渡して、
関数を呼び出すことはできません。
2つの引数を使うsell関数を定義した場合は、
引数を1つだけ指定して呼び出すことはできません。
引数のない関数を使う
引数のない関数を定義する際には、
引数の型として
void
という特殊な型を指定することになっています。
関数を呼び出す際には、
( )内に値を指定しないで呼び出します。
以下が引数のない関数の呼び出しの記述になります。
//sell関数の呼び出し
・・・
sell( );
次回は戻り値について学んでいきます。
〜END〜