next up previous contents
Next: 引き数が配列変数の場合 Up: 値呼び出しと参照呼び出し Previous: 値呼び出し   Contents

参照呼び出し

実引き数の値を関数内部で計算し、その結果を返すには、 呼び出し側で変数の前に&をつけて関数を呼び出し、 参照関数側で変数の前に*をつけて計算すればよい。 これは、変数のアドレスを関数に渡して呼び出す方式であるので、 参照呼び出しと呼ぶ。 以下、関数内での変更が、呼び出し側に反映されるプログラム例を示す。


#include <stdio.h>
void func(int *);
void main(){
int i;
i = 0;
printf("i in main begfore calling func = %d\n", i);
func(&i);
printf("i in main after calling func = %d\n", i);
}
void func(int *i){
(*i)++;
printf(" i in func after incriment = %d\n", *i);
}

実行すると画面には次のように出力される。


i in main begfore calling func = 0
i in func after incriment = 1
i in main after calling func = 1

変数iの値が、関数func中で変更されると、 関数の外(main)に反映されることがわかる。 これにより、計算結果の値を返すことができる。



kojima hirohisa
2001-03-05