标题:[求助]参数传递问题
只看楼主
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
 问题点数:0 回复次数:3 
[求助]参数传递问题

void swap(int,int);
void main()
{
int a=3,b=8;
cout<<a<<b<<endl;
swap(a,b);
cout<<a<<b<<endl;
}
void swap(x,y)
{
int temp=x;
x=y;
y=temp;
}
哪位大侠能详细解释一下这个?对于多个返回值与参数传递的问题不是很清楚~~

搜索更多相关主题的帖子: 参数 int void swap temp 
2006-04-28 14:16
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
得分:0 
楼主的程序里,用的是值传递,运行完毕,不会产生a和b值的互换。
用引用,swap(int&,int&),才会引起a和b值的改变

如果一个函数有多个返回值,可以考虑放到函数的参数中,但注意要用引用传递,或者可以自定义一个结构体。

成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-04-28 14:26
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
得分:0 

谢谢了`~


2006-04-28 14:38
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
记住主要机制
传递的只是他的内容
也就是值拷贝
而你的实参没有改变
相当于在SWAP函数里面又开了x,y两个变量
把a,b的值分别付给他们了
而a,b却与函数无关
通过指针或引用可以使函数对实参有作用

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-04-28 16:46



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




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

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