C语言中 结构体作为函数参数

书上写着“StatusInitList_Sq(SqList&L)”,SqList是一个定义好的结构体,可以直接把SqListL作为参数么?还有SqList&L的意思是取这... 书上写着“Status InitList_Sq(SqList &L) ”,SqList是一个定义好的结构体,可以直接把SqList L作为参数么?
还有SqList &L的意思是取这个结构体的首地址么,真正调用这个函数的时候应该怎么输入啊?
展开
 我来答
CraZy_小猪
2013-08-27 · TA获得超过792个赞
知道小有建树答主
回答量:871
采纳率:55%
帮助的人:276万
展开全部
1.可以把结构体作为参数啊,
2.不去取地址的意思,是引用的意思,函数执行时修改L的值,就直接的修改了实参的值,相当于地址传递了。

3.真正调用的时,如下:
SqList tempStruct;
InitList_Sq(tempStruct)
这样就可以了。
呵呵
追问
如果定义函数的时候去掉&,变成Status InitList_Sq(SqList L)。是不是实参的值就不会被函数修改了?
追答
是这样的,使用引用就是想修改实参的值,如果去掉了引用,那么就是单纯的使用实参的值,而不是修改!
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
zouadw
2013-08-27 · TA获得超过102个赞
知道答主
回答量:90
采纳率:100%
帮助的人:96.4万
展开全部
可以直接用SqList L。SqList& L中的& 并不是取地址的意思,是引用的意思。
追问
如果定义函数的时候去掉&,变成Status InitList_Sq(SqList L)。是不是实参的值就不会被函数修改了?
追答
是的。引用的最主要作用,就是在函数传参时,传递的是实际参数,相对于非引用传参,它因为使用实际参数,少去了一份拷贝。因而效率和空间都有提升。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
颜海镜
2013-08-27 · TA获得超过1564个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:148万
展开全部
这是传引用的意思,不是取地址,这个好像是c++里的c里面没有引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式