
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;
} 展开
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;
} 展开
3个回答
展开全部
void change(int x,int y);
在函数调用时,系统会自动给形参分配空间,调用完后系统会收回空间 ,所以实参没有发生变化
改成:
void change(int *x,int *y);
主函数中:
change(&a,&b);
在函数调用时,系统会自动给形参分配空间,调用完后系统会收回空间 ,所以实参没有发生变化
改成:
void change(int *x,int *y);
主函数中:
change(&a,&b);
展开全部
好吧告诉你
void change(int& x, int& y)
void change(int& x, int& y)
追问
我想知道为什么上边交换不成功。
追答
因为你调用change函数后根本就没有改变a,b变量,只有把change的形参改为引用,相当把a,b用x,y做为别名使用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要传地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询