再び、関数の定義の書式を書くと、
[返り値の型] 関数名( 引数 [,引数...] ){ 実行文 ... } |
であるが、ここで、返り値の型を指定すると関数の返り値を整数以外にとる事が 出来る。
例 文字の整数値を与えると対応する文字を返す char itoc(int a){ char c; c = a; return c; } |
上の例では、関数の名前の前に char
があるので、関数 itoc()
は
文字型の関数になり、返り値は文字型でなければならない。
例 任意の整数値を -1.0 から 1.0 までの実数値に対応させる float rmap1(int num){ if (num==0){ return 0.0; }else if(num==1){ return 1.0; }else if(num==-1){ return -1.0; }else{ return 1.0/num; } } |
この例では、関数の名前の前に float
があるので、関数 rmap1()
は
実数型の関数になり、返り値は実数型でなければならない。
例 ポインタを返す char * string(){ char *s="this is a test."; return s; } |
上の例は、アドレスを返す関数の例である。ポインタの章で学んだように、
[型] *
はポインタを意味する。従って、返り値はアドレスでなくては
ならない。例では、"this is a test."
という文字列のアドレスを返して
いる。