标题:&-引用型参数如何用?
只看楼主
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
 问题点数:0 回复次数:8 
&-引用型参数如何用?

刚学数据结构, 不过对于书上的一些算法有点不明白.特别是&参数符.举几个例子:
1)栈的运算
栈的初始化:void initstack(stack &ST)
读栈顶元素:int sempty(stack St)
书上说第一个是引用型参数,&表示可以引用并返回操作结果.不懂.希望各位帮解释一下,先谢过了!

搜索更多相关主题的帖子: 型参数 stack 数据结构 void 
2006-11-27 13:13
菜鸟上路
Rank: 4
等 级:贵宾
威 望:14
帖 子:1120
专家分:0
注 册:2006-3-21
得分:0 
你只要拿个例子看下,记住这种表示就可以了

2006-11-27 18:19
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
得分:0 

希望可以讲解一下在函数参数内有无&的区别?谢谢!


在不断的拼搏与进取中,定能创造一片天地!
2006-11-27 21:26
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
void f1(int &a)
{
a++;
}

void f2(int a)
{
a++;
}

int b=3;
分别调用这两个函数就会发现其中有什么区别.

倚天照海花无数,流水高山心自知。
2006-11-28 13:00
Welton
Rank: 2
等 级:论坛游民
帖 子:65
专家分:38
注 册:2006-10-25
得分:0 

引用不能直接用值来传递
如上边的
void f1(int &a)
{
a++;
}

void f2(int a)
{
a++;
}

int b=3;
f1(1)就出错了!


只是喜欢编程而已!
2006-11-30 12:38
zhufeifei
Rank: 1
等 级:新手上路
威 望:2
帖 子:402
专家分:0
注 册:2006-8-11
得分:0 

翻了翻书,终于找到了原因了.原来&在C++里是引用操作符.可能是类C语言.可以返回结果.可以不用return来表示.可能说得不清楚吧!


在不断的拼搏与进取中,定能创造一片天地!
2006-11-30 14:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
以下是引用zhufeifei在2006-11-30 14:47:57的发言:

翻了翻书,终于找到了原因了.原来&在C++里是引用操作符.可能是类C语言.可以返回结果.可以不用return来表示.可能说得不清楚吧!

可以保存改变了的结果.是一个变量名的别名.


倚天照海花无数,流水高山心自知。
2006-11-30 23:19
maiiho
Rank: 1
等 级:新手上路
帖 子:94
专家分:7
注 册:2008-7-17
得分:0 
虽然我看这么久,但我真的不明白!
2008-11-16 22:38
shangke
Rank: 1
等 级:新手上路
帖 子:23
专家分:5
注 册:2009-8-3
得分:0 
用实际参数初始化用引用型参数声明

值传递的方式是双向的:实参带值进入函数,函数体通过实参的别名对实参进行操作也就是通过引用型参数可以返回计算结果

但是要记住实参必须是一个能够被引用的量,是一个变量实体


对比:
void swap(int &a,int &b)
{
int temp;
temp=a;a=b;b=temp;
}
void swap(int a,int b)
{
int temp;
temp=a;a=b;b=temp;
}
#include <iostream>
using namespace std;
int main()
{
int x=1,y=2;
cout<<"x="<<x,"y="<<y<<endl;
swap1(x,y);
cout<<"x="<<x,"y="<<y<<endl;  //双向,操作实参的值
swap(x,y);
cout<<"x="<<x,"y="<<y<<endl;  //单项传递
return 0;
}

[[it] 本帖最后由 shangke 于 2009-8-3 11:08 编辑 [/it]]

我的博客:http://hi.baidu.com/hk_csm
2009-08-03 10:40



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




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

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