引数と戻り値
今日は関数を作るよ!
#include <stdio.h>
char getNextValue(char val)
{
char ret = val + 1;
printf( "in func, val = %d, ret = %d\n", val, ret );
val += 2;
printf( "in func, val = %d, ret = %d\n", val, ret );
val += 2;
printf( "in func, val = %d, ret = %d\n", val, ret );
return ret;
}
int main(int argc, char *argv[])
{
char val = 0;
printf( "in main, val = %d\n", val );
val = getNextValue( val );
printf( "in main, val = %d\n", val );
val = getNextValue( val );
printf( "in main, val = %d\n", val );
return 0;
}
実行結果
in main, val = 0
in func, val = 0, ret = 1
in func, val = 2, ret = 1
in func, val = 4, ret = 1
in main, val = 1
in func, val = 1, ret = 2
in func, val = 3, ret = 2
in func, val = 5, ret = 2
in main, val = 2
今回作った関数は、charというサイズに収まる値を渡すと、
次の数字をcharというサイズに収めて返すものだよ。
getNextValueの中のvalと、mainのvalが違うものだって分かるかな?
入れ物から入れ物に値だけを渡す方法を、「値渡し」って呼んでいるよ。
returnを通して値を返しているけど、
これも入れ物の中の値を返しているよ。
どういう値が返ってきてるかは、実行結果をよく見てね。
1個1個分からなくても、なんとなく分かることが大切だよ。
Leave a Comment