标题:大家帮忙解惑一下,为什么这个函数能正确编译并执行
只看楼主
acone
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-8-25
结帖率:20%
 问题点数:0 回复次数:3 
大家帮忙解惑一下,为什么这个函数能正确编译并执行

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

总感觉应该传地址进去呀
搜索更多相关主题的帖子: 函数 void double 
2013-05-22 11:05
ouyangyang
Rank: 2
等 级:论坛游民
帖 子:5
专家分:27
注 册:2013-5-20
得分:0 
1.可以正确执行,但是不改变形参(即x,y值不改变),x,y生存周期只限于函数swap(..)中
2.如果使用引用符号,则会改变形参的值

int a,b;
swap(a,b);    不改变a,b值
swap(&a,&b);   改变a,b值
2013-05-22 11:56
acone
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-8-25
得分:0 
谢谢楼上!
还是不太明白,如果x,y的值不改变,要此函数何用?
求各位大侠继续解释。
2013-05-22 14:30
hpshuaia
Rank: 2
等 级:论坛游民
帖 子:28
专家分:22
注 册:2013-5-16
得分:0 
那个递归的思想 不是可以用a=a+b;b=a+b;吗?
2013-05-23 12:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-407706-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.124217 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved