如何修改按值传递的变量,而不是在C函数中的参考



如何修改按值传递的变量,而不是在c?

中函数中的参考。
void fun_a(int a, int b) {
  ....
}
int main() {
    int x = 5, y = 6;
    printf("%d, %d", x, y);    // 5, 6
    fun_a(x, y);               // pass by value
    printf("%d, %d", x, y);    // 1, 2
    return 0;
}

如何使用fun_a更改变量?

有什么方法可以做到吗?尽管我知道它可以通过引用轻松传递引用来改变变量。

c不知道参考。改用指针。

void fun_a(int *a, int *b) {
   *a = 10;
   *b = 12;
}
int main() {
    int x = 5, y = 6;
    printf("%d, %dn", x, y);    // 5, 6
    fun_a(&x, &y);             // pass pointer to variable
    printf("%d, %dn", x, y);    // 10, 12
    return 0;
}

简单答案:您不能。要实现目标,您必须通过指针。

最新更新