【问题标题】:c programming global variable updatingc编程全局变量更新
【发布时间】:2015-05-20 02:16:09
【问题描述】:

我是 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;
}

【问题讨论】:

标签: global-variables


【解决方案1】:

在 C 中,原始变量是按值传递的,而不是按引用传递的。调用swap方法时,swap方法中的ab参数与main()方法中的ab不同。只有ab 的值被传递到方法中。所以虽然在 swap 方法中,a 和 b 被交换了,但是 main 中的 ab 实际上并没有改变。

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

【讨论】:

    猜你喜欢
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-22
    相关资源
    最近更新 更多