如何在C中通过引用传递变量?



我想通过引用方法显示x,y,z值如何做到这一点?

  • 什么是传递值-结果?

      void f1(int x, int y, int z){
          x = y + z;
          y = z + 1;
          printf("x: %d y:  %d z: %d",x,y,z);
      }
      int main(int argc, char *argv[]) {
          int r = 5;
          int t = 10;
          int k = 15;
          f1(r, t, t + k);
          printf(" r : %d t:  %d k : %d",r,t,k);
      }
    

任何帮助都是感激的。

这只是使用间接的一个例子,在C中意味着指针:

// Declare any arguments that are mutated as pointers
void f1(int* x, int* y, int z) {
  *x = *y + z;
  *y = z + 1;
  printf("x: %d y:  %d z: %d", *x, *y, z);
}
int main(int argc, char *argv[]) {
  int r = 5;
  int t = 10;
  int k = 15;
  f1(&r, &t, t + k);
  printf(" r : %d t:  %d k : %d",r,t,k);
}

注意,为了使用指针,你必须有指向的对象。t + k不属于这些东西。可以论证的是,z没有作为参数变异,所以它可以是一个普通的int

就操作顺序而言,在发生突变之前计算t + k并将其赋值为参数。

最新更新