next up previous contents
Next: 3. 標準関数と標準ライブラリ Up: 10. 関数 I Previous: 1. 関数の書式

2. 関数の引数と返り値

前述したように関数には情報を与えなければならない。この情報を引数と言う。


例
    printf("%d\n", a);                  /* 引数は、"%d\n" と a */
    printf("%d %f %c \n", i, r, c);     /* 引数は、"%d %f %c \n" と i と r と c */
    scanf("%c", &c);                    /* 引数は、"%c" と &c */

(この例のように printfscanf は、少し特殊な例で、引数の数 が変化しても良いようになっている。このような引数の数が変化しても良いような 関数を自分で作成するのは、いささか面倒な手続きが必要である。通常は、引数の 数は決まっていると考えて良い。)

まったく引数の無い関数があっても構わないが、その場合でも丸括弧で囲まなければ ならない。


例
    hikisunashi();      /* 引数がない例 */

また、scanf で学んだように、関数には返り値がある。この返り値を用いて、 その関数で行った仕事の結果を知ることが出来る。勿論、返り値のない関数もあるし、 返り値を知る必要の無い場合は、利用しなくても良い。

引数も返り値も共に、型がある(例えば整数型を引数に、返り値は実数型とか)点に 注意しよう。


関数の返り値の例
    int c;
    c = printf("abcd\n");
    printf("number of character is %d\n", c);

今まで printf 関数の返り値があることや、その使い方については学んで こなかったが、実は、printf 関数には返り値があり、出力した文字の数 が整数で返るようになっている(改行 \n は数えられない。) 従って、この例を実行すると、abcd と出力改行後、number of character is 4 と出力される。

勿論、今まで学んだように、返り値を利用しなくても良い。


返り値を利用しない例
    printf("output only\n");



Noriyo Kanayama 平成14年11月26日