如何修改按值传递的变量,而不是在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;
}
简单答案:您不能。要实现目标,您必须通过指针。