C:値の参照引き渡し

  1 #include <stdio.h>
  2
  3 double calc_v(double *x,double *y);
  4
  5 int main(void){
  6
  7     double a=39.0,b=12.0,sum;
  8
  9     //printf("&a=%p,&b=%p,&a,&b");
 10
 11     sum = calc_v(&a,&b);
 12     printf("%f\n",sum);
 13
 14     return 0;
 15 }
 16
 17 double calc_v(double *x,double *y){
 18
 19     double ans;
 20     ans = *x + *y;
 21
 22     return ans;
 23 }
 24

・3行目のプロトタイプ宣言において、引数の値もちゃんとしないと怒られた。(double,double)とか書いてた。どっかの参考書には書いてあったんだけどな。

・アドレスは%pで表記する。
・アドレスを渡してポインタにそのアドレスを代入している操作をしてる。calc_v内でそのアドレスに指定されている値を直接呼び出して関数内で使用している。こんなやり方を参照呼び出しっていうらしい。