注册 登录
编程论坛 VC++/MFC

大家帮忙解惑一下,为什么这个函数能正确编译并执行

acone 发布于 2013-05-22 11:05, 492 次点击

void Swap(double x, double y) { x = x+y; y = x-y; x = x-y; }

总感觉应该传地址进去呀
3 回复
#2
ouyangyang2013-05-22 11:56
1.可以正确执行,但是不改变形参(即x,y值不改变),x,y生存周期只限于函数swap(..)中
2.如果使用引用符号,则会改变形参的值

int a,b;
swap(a,b);    不改变a,b值
swap(&a,&b);   改变a,b值
#3
acone2013-05-22 14:30
谢谢楼上!
还是不太明白,如果x,y的值不改变,要此函数何用?
求各位大侠继续解释。
#4
hpshuaia2013-05-23 12:55
那个递归的思想 不是可以用a=a+b;b=a+b;吗?
1