void InitList(SqList &L) 为什么要加&

用的是严蔚敏的《数据结构及应用算法教程》,在顺序表部分的初始化操作:voidInitList_Sq(SqList&L,……还有插入元素操作:voidListInsert_... 用的是严蔚敏的《数据结构及应用算法教程》,在顺序表部分的初始化操作:void InitList_Sq(SqList &L,…… 还有插入元素操作:void ListInsert_Sq(SqList &L,int i,ElemType e)
为什么参数SqList &L要加上&,不加就显示内存错误,加上&到底是什么意思?
补充一点:我只学过C语言,没学C++,而那本书上C语言C++都有涉及
展开
 我来答
匿名用户
推荐于2016-06-24
展开全部
void InitList(SqList &L)

InitList 函数是初始化链表

前面 的& 是说 参说 L 是以 引用方式调用
初始化链表当然需要对参数做修改
应该使用引用或者指针形式的参数,引用形式的参数更加安全

引用形式的参数只有c++ 才可以

如果是在c程序里就要使用指针形式的参数
void InitList(SqList *L)
江小右
2009-09-25 · TA获得超过6928个赞
知道小有建树答主
回答量:1195
采纳率:0%
帮助的人:834万
展开全部
给个简单的例子
void add10(int &a)
{
a=a+10;
}
void main()
{
int n=10;
add(n);
printf("%d",n);
}
这里n为20,如果不是引用的话n=10
同样的道理
void ListInsert_Sq(SqList &L,int i,ElemType e)//这里如果不是引用的话L返回后是不会变化的,这里是插入一个元素,如果不是引用加入后L返回任然是原来的L,下面的操作肯定就对变化后L而言,而实际上不加&的L并没有任何变化,甚至还是一个空的,你却当不是空的来处理,自然就出现内存.....这样楼主应该明白了吧 ,不明白咱继续聊,到你明白为止
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
独孤冷潆
2009-09-25 · TA获得超过6395个赞
知道大有可为答主
回答量:3079
采纳率:0%
帮助的人:3089万
展开全部
这是C++里面引用的意思:声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2016-01-07
展开全部
  SqList应该是一个类(顺序链表类),然后&指的是引用。这可能是在某个函数中的参数,意思是传一个SqList类型的引用。
  顺序表存储位置是相邻连续的,可以随即访问的一种数据结构,一个顺序表在使用前必须指定起长度,一旦分配内存,则在使用中不可以动态的更改。他的优点是访问数据是比较方便,可以随即的访问表中的任何一个数据。
  链表是通过指针来描述元素关系的一种数据结构,他可以是物理地址不连续的物理空间。不能随即访问链表元素,必须从表头开始,一步一步搜索元素。它的优点是:对于数组,可以动态的改变数据的长度,分配物理空间。
  在使用中:如果一个数组在使用中,查询比较多,而插入,删除数据比较少,数组的长度不变时,选顺序表比较合理。如果插入,删除,长度不定的数组,可以选链表。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
本本西祠2007
2009-09-30
知道答主
回答量:11
采纳率:0%
帮助的人:4.4万
展开全部
引用,c++里面的。跟指针差不多的东西,但不一样。搜一下吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式