gpt4 book ai didi

c - 为什么函数交换功能不起作用?

转载 作者:行者123 更新时间:2023-11-30 16:26:07 25 4
gpt4 key购买 nike

我有一个函数swap()像下面这样

void swap(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
}

当我像这样调用它到我的主函数时

void main(int argc, char const *argv[])
{
int x,y;
printf("enter two integer: ");
scanf("%d %d",&x,&y);
printf("\nbefore swapping: %d , %d\n",x,y);
swap(x,y);
printf("\nafter swapping: %d, %d\n",x,y);
}

函数 swap() 不起作用(意味着不能交换两个值)。为什么会发生这种情况?谁能帮我解决这个问题?

最佳答案

您的void swap(int x, int y)复制参数,它不使用对它们的“引用”,这与Java等语言相反(甚至不确定在Java中整数是否不存在)按值传递)。

用途:

void swap(int* x, int* y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}

关于c - 为什么函数交换功能不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53152743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com