Previous: 関数の書式
Up: 関数
Next: 標準関数と標準ライブラリ
Previous Page: 関数の書式
Next Page: 標準関数と標準ライブラリ

関数の引数と返り値

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

例
	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 */

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

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

例
	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");

maruyama@wakhok.ac.jp
1995年02月08日 (水) 18時57分57秒 JST