Global variables c编程全局变量更新
我是c编程新手,写了一个交换两个数字的函数。问题是内部交换函数变量得到了正确的更新,但全局变量a和b没有改变。请帮助我消除任何误解。谢谢你的帮助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语言中,原语变量是通过值
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
实际上没有改变
你需要做的是通过引用传递。参考传递的一个例子是。可能重复的