- ベストアンサー
関数と引数の関係とは?
只今ゼロからプログラミングの勉強をしています。 言語はC言語を習得したいと思ってます。 (将来的にはJavaも!) す~っごく初歩的な質問で申し訳ないんですが 関数とは何でしょうか? 引数とは何でしょうか? またその関係について、非常にわかりやすく 簡単に教えていただけないでしょうか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
関数=電子レンジ 引数=レンジに入れる「弁当」 や 電子レンジの「設定」(例えば3分あたためるの「3」など」 電子レンジ(弁当, 3) ↓ ↓ ↓ 関数 引数1 引数2 これを実行した結果としてふさわしい結果は普通は「あったか弁当」の誕生でしょう。 であるとすれば、次のようになります。 電子レンジ(弁当, 3) ─────────── ↓ この(関数+引数)全体で「あったか弁当」という「値」を返してくれる。
その他の回答 (4)
- brogie
- ベストアンサー率33% (131/392)
C言語では、関数が基本になります。 その関数へ渡す値が引数です。 C言語はmain関数から始まります。 そのmain関数の中に長々と処理を書いている人もいますが、プログラムの可読性が悪くなります。そこで、纏まった処理は下請けに出します、その下請けが関数です。そのとき必要な部品数を伝えるのが引数です。 簡単な例 /*プロトタイプ宣言*/ int wa(int , int); int seki(int, int); /*main関数*/ void main() { int a, b ,c ,d; a = 10; b = 20; c = wa( a , b ); d = seki( a, b ); } /*関数*/ int wa(int x, int y) { return x + y; } int seki(int x, int y) { return x*y); } 関数int wa(int x, int y),int seki(a ,b) 実引数 a,b.........実際この引数に値が入って渡される。 仮引数x,y..........こちらは引き受ける引数で、仮にx,yとなっているだけです。 (このソースをコピー&ペーストで使用できません。理由:可読性をよくするために、全角スペースを入れています) 以上、簡単な説明ですが、ご参考まで(^^;
お礼
回答ありがとうございました。 参考ソースまで付けていただいて よくわかりました。
- dell_kun
- ベストアンサー率20% (1/5)
ゼロからプログラムを勉強しているとのことですが、Cプログラミングではmain関数という関数を使います。 プログラムの動作はこのmain関数の中に記述された一連の処理を行うことによって実現します C言語で最初に作るプログラムの定番はHello.cです。 具体的に記述すると以下のようになります。 #include <stdio.h> void main(){ printf("Hello World!"); } このプログラムは画面にHello World と表示するだけの処理をします。 このように、処理が短いときはmain関数だけ使ってプログラムが書けるので、関数や引数を気にする必要はありません。 しかし、処理が長くなったり、複数の人間で分担して作業を行うようになるとmain関数のなかに全部の処理をダラダラっと記述するのは効率上よくありません。 そこで、main以外に関数をつくり、処理の分担を行うのです。 たとえばプログラムで電卓を作りたい場合、電卓の処理を考えると、足し算、引き算、掛け算.....といくつかの処理が考えられます。 そこで、足し算の処理をする関数、引き算の処理をする関数.....といくつかの処理を関数としてまとめておくのです。 足し算関数の例を以下に示します。 int tasizan(int suji1,int suji2){ int ans; //加算の答えを格納 ans=suji1+suji2; //与えられた引数を足した答えをansの中に入れる return ans; //加算の答えを返す } tasizan は関数名で、関数の処理をあらわすような名前を任意で決定できます。(好みで付けてください) tasizan関数の次の( )内に記述されたsuji1、suji2を引数といいます。 これは、関数のパラメータです.... といってもなんのことかわからないと思うので、もう少し我慢してよんでください。 プログラムの全ての動作はmain内で実行されます。つまり、分けて作ったtasizan関数をmain関数のなかに組み込まなければなりません。 main関数にtasizan関数を組み込むと以下のようになります。 #include <stdio.h> void main(){ int kaitou; kaitou = tasizan(3,8); //足し算関数の答えをkaitouの中に格納 printf("3+8=",%d); } 足し算の処理がtasozan(3,8)の一行で済みました(^^) 足し算関数ではtasizan(引数1、引数2)では引数1と引数2の足し算を返します。 この返される数値を戻り値と言い、tasizan関数内のreturan ...で指定された値を返します。 このように、関数には引数と戻り値があります。(引数も戻り値もない関数もあり処理内容によってさまざまです) また、プログラム内で同じ処理を頻繁に利用する場合も記述が短くなり、プログラムが整理されます。 以上です。 質問者のプログラミング理解度がわからないので、長々と書いてしまいました。ひまだったし... 厳密に言うと上記の内容で正しくないこともありますが、単純に説明するため難しいことは省いています。 では、がんばって勉強してください。
お礼
回答ありがとうございました。 もっともっと理解を深めていきたいと思います。
- a-kuma
- ベストアンサー率50% (1122/2211)
> 関数とは何でしょうか? C言語では、処理の単位が関数になります。一連の処理・操作をひとくくりに まとめて、名前をつけたものが関数です。 関数には、予め用意されているものもありますが、自分で作ることもできます。 > 引数とは何でしょうか? 引数とは、関数に与えるパラメータ、つまり条件になります。 関数は、何か処理をやってくれるものなので、誰か(これも関数です)が 「処理をよろしく」と、その関数の名前で呼んであげます。そのときに、 その関数次第では 仕事の条件を指定できて、それを引数(ひきすう)と 呼びます。 条件を指定する必要が無い、もしくは、できないという関数を作ることも できます。そういった関数には、引数がありません。 # 分かり難ければ、補足をしてください
お礼
回答ありがとうございました! よぉ~くわかりました! どの本を参考にしてもその辺のところの 説明ってあまりされてなくてボヤ~っと しか理解していなかったので・・・。 ありがとうございました。
- doroteasu
- ベストアンサー率11% (4/34)
関数はなにかを コンピュータにしてもらいときに使うコマンドです。 引数は例えば数学で出てくる“x” のようなもので、代数ですかね。 あとで、xに1を代入したり2を代入したりと使います。 ところで、ここらへんの事から 聞いているようだと、大変な時間が掛かると思われます。 できれば、もっとよくわかる本などを、買ったほうがいいと思います。
お礼
早速の回答ありがとうございます! どの本を参考にしてもその辺のところの 説明ってあまりされてなくてボヤ~っと しか理解していなかったので・・・。 関数と引数の関係ってところが まだイマイチよくわかりません・・・。 教えて下さい。
お礼
回答ありがとうございました。 とてもわかり易くて理解できました。 更なる飛躍を目指したいと思います!