&
をつけて関数を呼び出し、
参照関数側で変数の前に*
をつけて計算すればよい。
これは、変数のアドレスを関数に渡して呼び出す方式であるので、
参照呼び出しと呼ぶ。
以下、関数内での変更が、呼び出し側に反映されるプログラム例を示す。
#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)に反映されることがわかる。 これにより、計算結果の値を返すことができる。