鱼C论坛

 找回密码
 立即注册
查看: 3549|回复: 3

[已解决]买了本严为民的数据结构,问题请教

[复制链接]
发表于 2015-3-22 11:37:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
typedef struct{
int  *elem;
int length;
int listsize;
}SQlist;

int Initlist_sq(SQlist &L){                                     //这一句是什么意思???????L.elem  = (ElemType *)malloc(sizeof(int));
L.listsize = 30;
return 1;
}

还有,这个函数调用时,实参要怎么写????
最佳答案
2015-3-22 14:50:59
int Initlist_sq(SQlist * const L){      
L->elem  = (ElemType *)malloc(sizeof(int));
L->listsize = 30;
return 1;
}
SQlist * const L,其中L为常指针,这时候实参传入时为结构体变量的地址&

之所以是引用int Initlist_sq(SQlist &L)的形式,是因为如果你写成int Initlist_sq(SQlist L)这种格式,相当于结构体的浅拷贝,修改L里面的元素值并不会改变原实参里面的元素值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-3-22 14:07:25 | 显示全部楼层
初始化操作

SQlist &L是SQlist结构体的引用,实参就是传入结构体变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-22 14:11:30 | 显示全部楼层
Victory_6226 发表于 2015-3-22 14:07
初始化操作

SQlist &L是SQlist结构体的引用,实参就是传入结构体变量

我没学过C++,能否详细解释一下,能否转化为等价的C代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-3-22 14:50:59 | 显示全部楼层    本楼为最佳答案   
int Initlist_sq(SQlist * const L){      
L->elem  = (ElemType *)malloc(sizeof(int));
L->listsize = 30;
return 1;
}
SQlist * const L,其中L为常指针,这时候实参传入时为结构体变量的地址&

之所以是引用int Initlist_sq(SQlist &L)的形式,是因为如果你写成int Initlist_sq(SQlist L)这种格式,相当于结构体的浅拷贝,修改L里面的元素值并不会改变原实参里面的元素值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 14:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表