自分で関数を作るときについて、次のようなコードがあります(Visual C++で書いたものです)。
#include <stdio.h>
int calc(int test){
int temp;
temp=test*5;
return temp;
}
int main(void){
int number=0;
number=calc(10);
printf("%d\n",number);
return 0;
}
このコードを実行すると、「50」と表示されます。「temp=test*5;」の部分がいまいちよくわかりません。
main関数でcalc関数に10を渡した結果が50なのでなんとなくは...
というわけでこのコードについて詳しく教えてほしいです。
自分で関数を作る
- spaaaark・∀・
- 記事: 66
- 登録日時: 12年前
- 住所: 埼玉
- 連絡を取る:
Re: 自分で関数を作る
temp変数は、その関数内で作られたもの、test変数は、関数calcに引数として渡した値となります。
このとき、test変数のような引数として受け取った値を代入する変数を仮引数と言います。 こう記述した際は、引数として渡される値は10で、その数値はcalc関数の中のtest変数に代入されます。
この場合、temp=test*5の、testには10が代入されているので、tempの値は10*5=50、となります。
そして、最後に戻り値としてtemp変数の中身を返しています。ここでは、その値をmain関数のnumber変数で受け取っています。
また、例えば、 と記述した時、1の場合ではcalc関数のtest変数には3が、2の場合ではiに代入されている値がtest変数に代入されます。
このコードの場合、1の場合では15が、2の場合ではiに5をかけたものがnumber変数に代入されることになります。
このとき、test変数のような引数として受け取った値を代入する変数を仮引数と言います。 こう記述した際は、引数として渡される値は10で、その数値はcalc関数の中のtest変数に代入されます。
この場合、temp=test*5の、testには10が代入されているので、tempの値は10*5=50、となります。
そして、最後に戻り値としてtemp変数の中身を返しています。ここでは、その値をmain関数のnumber変数で受け取っています。
また、例えば、 と記述した時、1の場合ではcalc関数のtest変数には3が、2の場合ではiに代入されている値がtest変数に代入されます。
このコードの場合、1の場合では15が、2の場合ではiに5をかけたものがnumber変数に代入されることになります。
クリエイティブな生活で刺激的な毎日を!
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 14年前
- 住所: 東海地方
- 連絡を取る:
Re: 自分で関数を作る
質問する場合は、引用元や課題であるかを明らかにしてくださいね。
今回の質問の元ネタは、こちらでしょうか?
「関数について | C言語入門サイト~bituse~」
http://bituse.info/c/17
さて、これをさらに理解する為に、これを同じ動作をするプログラムをcalc関数なしのmainだけで書けますでしょうか? → 【内容変更】
10を定義した変数に入れて、numberに計算結果を入れるプログラムです。
spaaaark・∀・ さんの回答が理解できるなら、すぐ書けると思います。
今回の質問の元ネタは、こちらでしょうか?
「関数について | C言語入門サイト~bituse~」
http://bituse.info/c/17
さて、これをさらに理解する為に、これを同じ動作をするプログラムをcalc関数なしのmainだけで書けますでしょうか? → 【内容変更】
10を定義した変数に入れて、numberに計算結果を入れるプログラムです。
spaaaark・∀・ さんの回答が理解できるなら、すぐ書けると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 自分で関数を作る
calcというのは、要するに、「何か値を渡すから、それを5倍した結果を返してね」という関数です。saga さんが書きました: このコードを実行すると、「50」と表示されます。「temp=test*5;」の部分がいまいちよくわかりません。
中学校で学んだ(はずの)関数、y = 5x と同じことをしています。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。