引数と戻り値
今日は関数を作るよ!
#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