TPY ENGINEERING VLOG

TPY ENGINEERING VLOG(C,JAVA)

*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

f:id:YuyaTerayama:20180908025323p:plain

ーsample53の実行画面ー

700円の本を売りました。

1000円の本を売りました。

このmain( )関数内では、

最初にsell( )関数を呼び出す際に、「700」という値を渡して呼び出す

次にsell( )関数を呼び出す際に、「1000」という値を渡して呼び出す

という処理を行なっています。

このように引数を使うことで、

柔軟な関数を作成できるのです。

関数の本体で定義されている引数(変数)のことを、

仮引数(parameter)

と呼びます。

一方、関数の呼び出し元から渡される引数(変数)のことを、

実引数(argument)

と呼びます。

 

キーボードから入力する(関数)

引数についてさらにやっていきます。

今回はキーボードから入力した値が関数内に渡されるようにします。

以下のコードを入力してみてください。

sample54.c

f:id:YuyaTerayama:20180908030041p:plainーsample54の実行画面ー

1冊目はいくらの本を売りますか?

700

700円の本を売りました。

2冊目はいくらの本を売りますか?

10000

10000円の本を売りました。

このようにして、

main( )関数内で変数を用意して、

キーボードからの入力を読み込ませ、

関数に渡すことができます。

C言語では、関数に渡されるのは変数numそのものではなく、

そこに格納されている値となっています。

このような引数の渡し方を、

値渡し(pass by value

と呼ぶことがあります。

 

複数の引数をもつ関数を使う

関数には2個以上の引数を持たせることができます。

関数を呼び出す際に、

複数の値を関数内に渡して処理することができるのです。

実際にコードを入力して見てみます。

sample55.c

f:id:YuyaTerayama:20180908031233p:plain

ーsample55の実行画面ー

いくらの本を売りますか?

700     (1つ目の引数)

いくらの本を売りますか?

1000    (2つ目の引数) 

700円と1000円の本を売りました。

複数の引数を持つ関数でも、

基本は同じです。

呼び出す際に、複数の引数をカンマで区切ってください。

この複数の引数のことを、

引数リスト

と呼ぶことがあります。

そうすることで、

区切った順に、実引数が仮引数に渡されます。

尚、仮引数と異なる数の実引数を渡して、

関数を呼び出すことはできません。

2つの引数を使うsell関数を定義した場合は、

引数を1つだけ指定して呼び出すことはできません。

 

引数のない関数を使う

引数のない関数を定義する際には、

引数の型として

void

という特殊な型を指定することになっています。

関数を呼び出す際には、

( )内に値を指定しないで呼び出します。

以下が引数のない関数の呼び出しの記述になります。

//sell関数の呼び出し

・・・

sell( );

 

次回は戻り値について学んでいきます。

 

〜END〜