在顺序表的建立中,为什么初始化要&,而求表长就没有&?

luoentao 2008-02-26 03:30:54
结构类型定义:

const int MAXSIZE;

struct Seqlist

{

ElemType data[MAXSIZE];

int len;

};

sqlist;

MAXSIZE是线性表存储空间的大小

1.初始化:

void initlist(sqlist &sq)
{
sq.len=0;
}

2.求表长

getlen(sqlist sq)
{
return sq.len;
}
...全文
377 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianjiao85 2008-03-15
  • 打赏
  • 举报
回复
对,C++的基础内容,
liangbch 2008-03-14
  • 打赏
  • 举报
回复
这是一个C++语法语义问题,而不是一个算法问题。
liangbch 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 luoentao 的帖子:]
2.求表长

getlen(sqlist sq)
{
return sq.len;
}
[/Quote]

这个也不是好的用法,sqlist占用的空间比较大,如果传值的话,需要执行 拷贝构造函数和析构函数(C++),或者数据复制(C),代价很高,较好的做法,引用传递或者传指针,如果需要明确表明该函数对sq只读不写可以这样做。

getlen(const sqlist *sq)
{
return sq->len;
}
liangbch 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 luoentao 的帖子:]
2.求表长

getlen(sqlist sq)
{
return sq.len;
}
[/Quote]

这个也不是好的用法,sqlist占用的空间比较大,如果传值的话,需要执行 拷贝构造函数和析构函数(C++),或者数据复制(C),代价很高,较好的做法,引用传递或者传指针,如果需要明确表明该函数对sq只读不写可以这样做。

getlen(const sqlist *sq)
{
return sq->len;
}
liangbch 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 luoentao 的帖子:]
2.求表长

getlen(sqlist sq)
{
return sq.len;
}
[/Quote]

这个也不是好的用法,sqlist占用的空间比较大,如果传值的话,需要执行 拷贝构造函数和析构函数(C++),或者数据复制(C),代价很高,较好的做法,引用传递或者传指针,如果需要明确表明该函数对sq只读不写可以这样做。

getlen(const sqlist *sq)
{
return sq->len;
}
liangbch 2008-03-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 luoentao 的帖子:]
2.求表长

getlen(sqlist sq)
{
return sq.len;
}
[/Quote]

这个也不是好的用法,sqlist占用的空间比较大,如果传值的话,需要执行 拷贝构造函数和析构函数(C++),或者数据复制(C),代价很高,较好的做法,引用传递或者传指针,如果需要明确表明该函数对sq只读不写可以这样做。

getlen(const sqlist *sq)
{
return sq->len;
}
y65500120 2008-03-13
  • 打赏
  • 举报
回复
我也不知道.
  • 打赏
  • 举报
回复
初始化函数中需要对参数内部的实际数据进行修改,所以需要传引用调用。

如果把这个&去掉,你可以试一下结果。执行完初始化函数之后,len的值不会变。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧