Global variables c编程全局变量更新

Global variables c编程全局变量更新,global-variables,Global Variables,我是c编程新手,写了一个交换两个数字的函数。问题是内部交换函数变量得到了正确的更新,但全局变量a和b没有改变。请帮助我消除任何误解。谢谢你的帮助 int main(){ int a = 2; int b = 3; void swap(int a , int b){ int c= a; a = b; b = c; } swap(a,b); printf("%d\n",a); printf("%d\n",b); return 0; } 在C语言中,原语变量是通过值

我是c编程新手,写了一个交换两个数字的函数。问题是内部交换函数变量得到了正确的更新,但全局变量a和b没有改变。请帮助我消除任何误解。谢谢你的帮助

int main(){

int a = 2; int b = 3;
void swap(int a , int b){
    int c= a;
    a = b;
    b = c;
}
swap(a,b);
printf("%d\n",a);
printf("%d\n",b);
    return 0;
}

在C语言中,原语变量是通过值传递的,而不是通过引用传递的。调用swap方法时,swap方法中的
a
b
参数与main()方法中的
a
b
参数不同。只有
a
b
的值被传递到方法中。因此,在swap方法中,a和b是交换的,但是主要的
a
b
实际上没有改变

你需要做的是通过引用传递。参考传递的一个例子是。

可能重复的