C 函数中变量值的改变
Change Value of Variable in Function in C
x
和 y
的最终值应为 x = 4
和 y = 21
。我明白为什么是y = 21
,但为什么是x = 4
? "a = 5" 不应该将值更改为 5 吗?谢谢
int f(int a, int *b){
a = 5;
*b = *b + 3*a;
}
int main(){
int x, y;
x = 4;
y = 6;
f(x, &y);
// What are x and y now?
}
在你的函数中,a 是按值传递的,而不是按引用传递的,因此 x 值不会改变。 b 通过引用传递,所以 y 的值改变了。
x
和 y
的最终值应为 x = 4
和 y = 21
。我明白为什么是y = 21
,但为什么是x = 4
? "a = 5" 不应该将值更改为 5 吗?谢谢
int f(int a, int *b){
a = 5;
*b = *b + 3*a;
}
int main(){
int x, y;
x = 4;
y = 6;
f(x, &y);
// What are x and y now?
}
在你的函数中,a 是按值传递的,而不是按引用传递的,因此 x 值不会改变。 b 通过引用传递,所以 y 的值改变了。