鱼C论坛

 找回密码
 立即注册
查看: 1226|回复: 7

[已解决]线性表顺序存储结构插入元素算法中的int &n

[复制链接]
发表于 2018-10-16 15:17:28 | 显示全部楼层 |阅读模式

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

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

x
算法中,函数的形参中有个 int &n 是不是错了,应该改为  int n
最佳答案
2018-10-16 15:32:38
本帖最后由 风扫地 于 2018-10-16 15:49 编辑

引用,可以理解为指针访问,对引用的读写访问可以看成对指针指向的内容的读写。

参数传递包含值传递和址传递两种方法,前者不能改变实际参数的值,后者能改变实际参数的值。引用是地址传递的一种变型。

形参是parameter,实参是argument,理解一下他们的区别。


落实到你的代码:
调用这个函数时,n++会对调用时传入的实际参数产生影响,即调用完毕后,调用处传入的n会加1.

REF:
https://www.cnblogs.com/jycboy/p/5184638.html

表达式中的取地址符&不再是取变量的地址,而是用来表示该变量是引用类型的变量。
493298453.jpg
244922216.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-16 15:26:41 | 显示全部楼层
这是什么书?
呃,合理,因为你的函数是空型,而你添加元素之后,容器是变大了。用引用,直接对外修改~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-16 15:32:38 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风扫地 于 2018-10-16 15:49 编辑

引用,可以理解为指针访问,对引用的读写访问可以看成对指针指向的内容的读写。

参数传递包含值传递和址传递两种方法,前者不能改变实际参数的值,后者能改变实际参数的值。引用是地址传递的一种变型。

形参是parameter,实参是argument,理解一下他们的区别。


落实到你的代码:
调用这个函数时,n++会对调用时传入的实际参数产生影响,即调用完毕后,调用处传入的n会加1.

REF:
https://www.cnblogs.com/jycboy/p/5184638.html

表达式中的取地址符&不再是取变量的地址,而是用来表示该变量是引用类型的变量。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-16 15:39:07 | 显示全部楼层
claws0n 发表于 2018-10-16 15:26
这是什么书?
呃,合理,因为你的函数是空型,而你添加元素之后,容器是变大了。用引用,直接对外修改~

北航出版社 唐发根  第三版 数据结构
容器 是不是指数组 ?
n 是 线性表的长度,&n 取这个长度变量的地址,在函数内部改变长度的值,然后外部的直接就改变了?



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-16 15:43:31 | 显示全部楼层
大可爱 发表于 2018-10-16 15:39
北航出版社 唐发根  第三版 数据结构
容器 是不是指数组 ?
n 是 线性表的长度,&n 取这个长度变量的地 ...

容器就是非纯量,数组、结构体、树……
这是 C++,不是 C,在函数原型定义的 & 是 引用。引用之前没有跟你讨论过??

swap(int &x, int &y); int a,b; swap(a,b); //不用一直写解引用
更多,看楼上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-16 15:46:04 | 显示全部楼层
本帖最后由 风扫地 于 2018-10-16 15:50 编辑

REF2:
https://www.cnblogs.com/codingmengmeng/p/5865510.html
这篇文章说的很清楚了,尝试自己敲进编译器运行一下。也可以用“别名”来理解引用,就是给你传入的实际参数取了一个别名。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-16 15:59:19 | 显示全部楼层
claws0n 发表于 2018-10-16 15:43
容器就是非纯量,数组、结构体、树……
这是 C++,不是 C,在函数原型定义的 & 是 引用。引用之前没有跟 ...

学了后面忘了前面。
那么说 结构体是容器,但容器不是结构体咯  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-16 16:07:30 | 显示全部楼层
大可爱 发表于 2018-10-16 15:59
学了后面忘了前面。
那么说 结构体是容器,但容器不是结构体咯


能够存储超过一个元素的东西就是容器

然后我一开始就告诉你代码没有问题以及原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 19:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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