c语言链表 关于指针参数调用问题

typedefintelemtype;typedefstructnode{elemtypedata;structnode*next;}snode,*linklist;谭浩... typedef int elemtype;
typedef struct node
{ elemtype data ;
struct node * next;

} snode,*linklist;
谭浩强的那本书上 这么写的:
关于建立空表
void set_linklist(linklist *head_pointer)
{
*head_pointer==NULL;
}
调用时 : set_linklist(linklist &head);

关于查找元素:
linklist location_linklist(linklist head,elemtype x )
{
省略了,与问题无关。.........
}
调用时: location_linklist(head,x);

我就不明白为什么查找调用时 , head 前面为什么没有地址符号& 呢? ??
我知道head_pointer 是二级指针, head 是一级指针 。 但是具体的细节不明白 ,求高手指点一下 在下不胜感激!!! 由于是新手 也没那么多财富,就生10点了 都给了吧...................................
展开
 我来答
寸草惜阴阳
2011-06-17 · TA获得超过362个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:390万
展开全部
我的理解是:
1、head是一个链表头指针(指针变量),指向了链表头。他在初始化链表时是用一个函数使head指向NULL,为了能在函数内改变外部变量的值,传参时要传递实参的地址,因为head是指针变量所以形参要声明为二级指针。
2、在查找时函数只要知道链表的表头地址就可以顺着链表一次查找。这函数内不需要该改变实参的值,所以只要传实参值的副本就可以了。实参head是一级指针,所以形参就声明为一级指针就可以了。如果也想初始化那样声明为二级指针也是可以的,但是完全没必要的。
ps: set_linklist(linklist &head);这个好像是要写成 set_linklist(&head);才对吧。
kissofblueice
2011-06-17 · TA获得超过471个赞
知道小有建树答主
回答量:814
采纳率:100%
帮助的人:584万
展开全部
其实很简单。。他之所以只穿一个一重指针进去是因为它最后会在return head;一般会是这样的情况。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
banyibanyi
2011-06-17 · TA获得超过4146个赞
知道大有可为答主
回答量:7139
采纳率:50%
帮助的人:2045万
展开全部
好久没写C方面了 我接到&指的是引用 当你要更改这个传入变量时加,如果只是查找没有比较加&。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangjing881211
2011-06-17 · TA获得超过716个赞
知道答主
回答量:102
采纳率:0%
帮助的人:66万
展开全部
此时查找的是指针,head是指针,他不是查找这个值,是查找这个指针。
追问
查找指针? 我想问您一下  就是&head 和head 什么区别?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式