链表中为什么要返回头指针

链表中 (return head) 为什么要返回头指针

我给你解答 链表:就是链接在一起的节点 你可以把他理解为九节鞭(或者车链子等等)
为什么要返回头指针呢:就好像你手要握着九节鞭的手柄是一样的,你获得了头指针,就可以顺着链子获取所有节点,当然你也可以返回链子上的其他节点,就像你手拎着中间任何一个节点,顺着此节点向前向后都可以获取其他节点,常规下还是返回头指针。在计算机中,每个节点你都可以把它看成一个内存的一个小区域,区域和区域通过指针连接(也就是上一个区域存了下一个区域的地址而已)。头指针也就是第一个节点的地址而已。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-10-10
我给你解答 链表:就是链接在一起的节点 你可以把他理解为九节鞭(或者车链子等等)
为什么要返回头指针呢:就好像你手要握着九节鞭的手柄是一样的,你获得了头指针,就可以顺着链子获取所有节点,当然你也可以返回链子上的其他节点,就像你手拎着中间任何一个节点,顺着此节点向前向后都可以获取其他节点,常规下还是返回头指针。在计算机中,每个节点你都可以把它看成一个内存的一个小区域,区域和区域通过指针连接(也就是上一个区域存了下一个区域的地址而已)。头指针也就是第一个节点的地址而已本回答被提问者采纳
第2个回答  2014-09-03
这种方式叫做“用指针函数*creat()的返回值来传递动态内存”,这是一个C语法

首先你要注意,子函数*creat()用了malloc动态申请内存,而return返回的是链表的首地址,相当于将你所申请的动态内存返回给主函数,所以主函数里的调用方式为head=create();如:

int *fun(void)//这里是指针函数
{
int *p = (int *) malloc (int);//动态申请内存
return p;
}

void main(void)
{
int *q = NULL;
q = fun();//fun()相当于指针p所指向的地址,然后用q指向fun(),即q指向p
}

像这种传递动态内存还可以用二级指针做形参进行传递,如

void fun(int **p)//这里不是指针函数
{
*p = (int *) malloc (int);
}

void main(void)
{
int *q = NULL;
fun(&q);//这里相当于传址,将p的地址传给q,即q指向p
}
求采纳为满意回答。追问

rerurn 语句 关键是在函数后面啊 函数不已经执行完了吗 玩什么还要指回去

第3个回答  2014-09-03
你返回第二个 那你的头怎么办就找不到了追问

rerurn 语句 关键是在函数后面啊 函数不已经执行完了吗 玩什么还要指回去

第4个回答  2014-09-03
你可以传递二级指针,那就不用了追问

rerurn 语句 关键是在函数后面啊 函数不已经执行完了吗 玩什么还要指回去

相似回答