搜索
bottom↓
回复: 6

链表的问题。小弟初学不才。

[复制链接]
头像被屏蔽

出0入0汤圆

发表于 2012-7-24 11:56:47 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-7-24 13:34:24 | 显示全部楼层
本帖最后由 lcw_swust 于 2012-7-24 13:38 编辑

百度上搜“node * &head”,有人回答了
楼主确定这个编译能通过?
KEIL下,node *改为 char *是通不过的,不知道node是怎么定义的?以及用的什么编译器?

本帖子中包含更多资源

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

x
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-7-24 13:41:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入296汤圆

发表于 2012-7-24 22:56:01 | 显示全部楼层
表明传入的是一个指针,而不是地址,你可以理解为是指向指针的指针……

出0入0汤圆

发表于 2012-7-25 13:46:53 | 显示全部楼层
1. 引用是C++的语法,参数里的&代表的就是引用的意思,C没有引用的概念,Keil中的C编译器估计不行
引用变量的别名。
2. void Insert(node * &head,char keyWord,char newdata)的意思猜测:
Insert里会表头是否存在,如果不存在,则需要给表头赋值。第一次调用Insert的话,估计是传递了个空的head进来,如:
node* table_head = NULL;
Insert(table_head, 1, 1);第一次调用,函数会将table_head赋值的.
如果是void Insert(node *head,char keyWord,char newdata)
函数里给head赋值的话,只是在函数内部的head变量被改变了,外部的table_head并没有变化.
3. node*&head的意义等价于node**head
写成void Insert(node **head,char keyWord,char newdata),内部给head赋值为
(*head) = new node.

不知说的对不对,lz听懂没?
引用的目的是给外部传递进来的head指针赋值.
头像被屏蔽

出0入0汤圆

 楼主| 发表于 2012-7-25 15:53:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入296汤圆

发表于 2012-7-27 23:39:44 | 显示全部楼层
linucos 发表于 2012-7-25 13:46
1. 引用是C++的语法,参数里的&代表的就是引用的意思,C没有引用的概念,Keil中的C编译器估计不行
引用变量 ...

谢谢你的详细解答。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-2 09:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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