c++交换不了两个变量的值??为什么交换不了

#include<iostream.h>voidchange(intx,inty);voidmain(){inta=3;intb=4;change(a,b);cout<<... #include<iostream.h>
void change(int x,int y);
void main()
{
int a=3;
int b=4;
change(a,b);
cout<<a<<endl<<b<<endl;
}
void change(int x,int y)
{
int c;
c=x;
x=y;
y=c;
}
展开
 我来答
530617859
2012-10-01 · 超过16用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:50万
展开全部
void change(int x,int y);

在函数调用时,系统会自动给形参分配空间,调用完后系统会收回空间 ,所以实参没有发生变化
改成:
void change(int *x,int *y);
主函数中:

change(&a,&b);
kingboy5555
2012-10-01 · TA获得超过224个赞
知道答主
回答量:163
采纳率:0%
帮助的人:155万
展开全部
好吧告诉你
void change(int& x, int& y)
追问
我想知道为什么上边交换不成功。
追答
因为你调用change函数后根本就没有改变a,b变量,只有把change的形参改为引用,相当把a,b用x,y做为别名使用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
随便小羊
2012-10-01 · TA获得超过214个赞
知道答主
回答量:66
采纳率:0%
帮助的人:38.9万
展开全部
要传地址
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式