c编程全局变量更新

c programming global variable updating

我是 c 编程的新手,编写了一个函数来交换两个 numbers.the 问题是内部交换函数变量正在正确更新但全局变量 a 和 b 不是 changing.Please 帮助我有什么误解我have.Thanks求助

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方法中的ab参数与main()方法中的ab不同。只有 ab 的值被传递到方法中。所以在 swap 方法中,a 和 b 被交换了,但是 main 中的 ab 实际上并没有改变。

您需要做的是通过引用传递。通过引用传递的一个例子是 here.