C 函数中变量值的改变

Change Value of Variable in Function in C

xy 的最终值应为 x = 4y = 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 的值改变了。