C语言:定义一个CHANGE函数,怎么printf后还是跟实参一样啊?

/*不好意思财富值就剩5了*/voidmain(){intx=3,y=8;change(x,y);printf("%d,%d\n",x,y);}change(inta,i... /*不好意思财富值就剩5了*/
void main ()
{int x=3, y=8;
change(x,y);
printf("%d,%d\n",x,y);
}
change(int a, int b)
{int c;
c=a;a=b;b=c;
}
展开
 我来答
fastfs
推荐于2017-12-15 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:778万
展开全部
这个值是值传递的,是不会改变值的。
类似于这样;
函数调用时
change(int e = x, int d = y)
里面执行的是
c = e; e = d; d =c;
它换的是e d这两个变量,你在change里打印是正确的,而不是x和y;
追问
原来是这样,我大概懂了。
那请问,要怎么样才能让e,d交换后的值再传回给x,y呢?
追答
用指针,传送它们的地址进去就行。
change(int *a, int *b)

change(&a, &b)

int c;
c=*a;*a=*b;*b=c;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式