ドットインストールにてC言語の講座を見ているので菅。関数についていまいち意味がわかりません。
http://dotinstall.com/lessons/basic_c/9409
どういう意味ですか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/04/14 13:24
回答1件
0
ベストアンサー
初心者の回答ですが、ご了承ください。
まず関数とは、このビデオで行っているように複数の処理をまとめられる一種の機能のようなものです。C言語では関数を組み合わせてプログラムを作ります。たまにC言語は関数型言語と勘違いされますが、違います。手続型です。forループやif条件分岐などを大切にする言語です。
そんな手続きの中でも
lang
1int main(void){ 2}
はエントリポイントと呼ばれる関数で、プログラムがここから始まるということを示す特殊な関数です。
さてこの講座では引数を2個取り、大きいほうを戻り値で戻す関数を作ってますね。
関数の作り方ですが
戻り値の型 関数名(引数リスト){}
という形で書くことができます。
ちなみに関数の書き方は使用言語によって違います。
C言語の変数には整数型に int、longなどがあり
浮動小数型に float、doubleなどがあります。
getMax()関数は戻り値にも引数にも浮動小数型を使っています。
lang
1float getMax(float a,float b){ 2 if(a>=b){ 3 return a; 4 }else{ 5 return b; 6 } 7}
とありますね。
関数で戻り値を設定するためには
lang
1return a;
のようにreturnというキーワードを使います。
コードの中身としてはifの条件分岐でaがb以上であった場合にaを返し、それ以外の場合にbを返す
といった感じです。
関数の呼び出し方ですが
lang
1int main(void){ 2 float result; 3 result=getMax(2.3,5.2); 4 printf("%f\n",result); 5 6 return 0;
というコードが書かれていますが、今回は戻り値のある関数を呼び出すため、戻り値を格納するために変数(result)を用意しています。当然関数からはfloat型の戻り値が返ってくるのでそれと同じ型です。
引数は2.3と5.2 。大きいほうは5.2なので戻り値は5.2、resultにも格納されます。
それをprintf()関数で出力していますが、この際使われる変換仕様%fについてお話しします。
変換仕様とはprintfやscanfなどの関数によく用いられる方法です。%~~と書かれている場所にコンマで区切られたものを埋め込むような仕様です。
例えば
lang
1#include<stdio.h> 2int main(void){ 3 int i; 4 double f; 5 char c; 6 7 scanf_s("%d\n", &i); //int型の変換仕様(scanf):%d 8 scanf_s("%lf\n", &f); //double型の変換仕様(scanf):%lf 9 scanf_s("%c", &c); //char型の変換仕様(scanf):%c 10 11 printf("i=%d\n", i); //int型の変換仕様(printf):%d 12 printf("f=%f\n", f); //double型の変換仕様(printf):%f 13 printf("c=%c\n", c); //char型の変換仕様(printf):%c 14 15 return 0; 16 17 18}
コマンドプロンプトの画面は
2
2.5
a
i=2
f=2.500000
c=a
のようになります。
こんな感じでよろしいでしょうか?長くなって申し訳ございません。
投稿2015/04/14 13:25
総合スコア91
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/04/14 13:28
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。