C中initlist(sqlist*&L)是什么意思

*&L是什么意思... *&L是什么意思 展开
 我来答
帐号已注销
2019-10-12 · TA获得超过25.9万个赞
知道小有建树答主
回答量:2206
采纳率:96%
帮助的人:81.8万
展开全部

initlist(sqlist*&L)中的*&L是引用。c++中的概念,int a;int &b=a;这就声明了b是a的引用,经过这样的声明后使用a或b的作用相同,都代表同一变量。对变量声明一个引用,并不另开辟内存单元。

函数参数传递有两种情况,有一般的将变量名作为参数,这时传递给形参的是变量的值,在执行函数的时候,形参的值发生的变化并不传递给实参。

传递变量的指针,使形参得到一个变量的地址,这时形参指针变量指向实参变量单元。引进引用后,函数参数的第三种传递方式就是传送变量的别名。

例如:

void initList(SqList *&L) 

L=(SqList *)malloc(sizeof(SqList)); 

L-> length=0; 

SqList *L = NULL;

initList(L);

L->...//进行对L的某些操作,那么你的程序运行良好

扩展资料

在形参表中以符号“&”开始的参数即为引用参数。如果一个形参是引用参数,调用部位将把实参的地址传递给子程序。子程序可以改变传递给引用参数的任何实参,因为子程序操作的是真正的变量,而不是它的副本。

把参数声明成引用,实际上改变了缺省的按值传递参数的传递机制,在按值传递时,函数操纵的是实参的本地拷贝。

引用参数的三种常见用法:

1、需要改变实参的值,比如swap()。参数是引用时,函数接收的是实参的左值而不是值的拷贝。这意味着函数知道实参在内存中的位置,因而能够改变它的值或取它的地址。

2、向主调函数返回额外的结果。

3、向函数传递大型的类对象。

参考资料来源:百度百科—引用参数

参考资料来源:百度百科—参数传递

沙支夸依
推荐于2017-10-05 · TA获得超过1281个赞
知道小有建树答主
回答量:291
采纳率:0%
帮助的人:326万
展开全部
这语言应该是在C++里才能出现的函数声明吧。
void initlist(sqlist &L);意思是说,参数L是sqlist类型,且参数是以别名传参出现的。所谓别名的意思说就是,在这个函数中,函数可以修改L的修。
例如:
void add10(int &a)
{
a=a+10;
}
void main()
{
int n=10;
add(n);
printf("%d",n);
}
输出: 20
------------------------------
了解别名的用法后,我们就知道了。void initlist(sqlist* &L)的意思是说,参数L是sqlist的指针类型。且在函数中可以修改这个指针L。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mystudio757
2007-12-13 · TA获得超过587个赞
知道小有建树答主
回答量:116
采纳率:0%
帮助的人:174万
展开全部
是c教材中的函数还是数据结构c描述中的算法?
c中没有引用符&,c++中有。如果是c中的函数,它只能被理解为形参L的地址是个基类型为sqlist的指针,相当于sqlist L.
在数据结构c描述中,却应用了c++中的引用符&。表示L是个基类型为sqlist的指针,并且它被引用,即L在此函数中并不分配内存,它直接引用主调函数中的L,在该函数中L的变化将自动带入主调函数中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e6d1103
2012-07-08 · 超过21用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:23.5万
展开全部
回答的还算好,但是L不是指针,&作引用讲与取地址毫无关系,引用作为形参能使在函数中改变的值在主函数里相应的值也被改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
摇摆的记忆
2007-12-13 · 超过10用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:0
展开全部
你应该把前面调用这个函数的一些代码贴出来才好
应该前面声明的是 sqlist *L.
因为函数调用是值传递的,initlist(sqlist*&L),不这样定义的话,那就在initlist()里没有对L进行操作,而是对函数的形参操作的,返回后L根本也没被分配空间。必须把L的地址传递给initlist()才可以的,这样定义相当于

这样定义:
sqlist *L
initlist(sqlist **L);

这样调用initlist(&L);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式