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

标签 c function variables arguments pass-by-reference

<分区>

我想通过引用传递方法显示 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 在突变发生之前被计算并分配为参数。

关于c - 如何在 C 中通过引用传递变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65720460/

相关文章:

C检查二维数组中元素的所有邻居

c - 如何避免为链表中的每个节点调用 malloc

java - 可以将具有推断类型的局部变量重新分配给不同的类型吗?

variables - Golang 未定义 : err

javascript - 如何通过Jquery中的函数调用设置变量?

c - 当 0xFF 在 char 数组中时,它与下一个 char 一起被读取为整数

c++ - kde 固定按钮 API

c# - 是否可以在类成员函数中使用 switch 语句并获取访问器?

c++ - 在 C++ 中跳回到函数的开头

python - *(单星)和/(斜线)作为独立参数有什么作用?