数据结构学习问题笔记之单链表
2014-08-07 15:40
232 查看
今天复习了单链表的创建,偶然发现单链表初始化的时候,参数是一个双重指针。
typedef struct Node { DataType data; struct Node *next; }ListNode,*LinkList; void(LinkList *head) \\为什么要定义二重指针啊?
原因如下:
1、指针是一种变量类型,自身在32位操作系统中的大小是4个字节,因为32位CPU的地址总线位宽是32位,指针的值是内存地址,我们知道,一个函数如果参数是值传递,那么传入函数体的是一份实参的拷贝,实际并不作用于该实参变量,而指针也是一样的,传入函数体的也是一份指针拷贝,这份拷贝指向于和原指针相同的地址,修改这份拷贝的值,也就是它的地址将毫无意义,只有修改其指向的内容才会实际作用到指向物。现在已经接近你的问题了,如果要使用函数使指针参数的值改变,也就是让它的指向改变,其方法就是使该指针成为二级指针,二级指针的内容是一个指针值,这样做改变就可以实际作用到指针指向。2、在初始化链表的时候,我们用到了2级指针为什么呢?因为我们希望在InitLinkList函数生成的头结点,主函数中也能指向这个头结点。如果我们用一级指针的话,用malloc分配空间的时候,它将会返回分配空间的首地址给指针变量Lnode,而不能使空间被主函数中指针变量L得到这个地址。所以我们要用2级指针。参考文章:http://www.360doc.com/content/12/0422/10/1317564_205594082.shtml
相关文章推荐
- 数据结构学习笔记6-动态规划(钢条切割问题)
- 算法设计和数据结构学习_3(《数据结构和问题求解》part2笔记)
- 数据结构学习笔记——单链表
- 数据结构学习笔记4——单链表的实现
- 数据结构学习笔记(二) 链表之单链表的基本操作
- python数据结构学习笔记-2016-11-02-02-迷宫问题
- 算法设计和数据结构学习_3(《数据结构和问题求解》part2笔记)
- 算法设计和数据结构学习_4(《数据结构和问题求解》part4笔记)
- 数据结构 学习笔记(八):图(中):最短路径问题(单源最短路径 Dijkstra,多源最短路径 Floyd)
- 数据结构学习笔记(3)---循环链表(约瑟夫环问题)
- 数据结构 学习笔记之:结构体及其所定义变量的内存分配的问题
- python数据结构学习笔记-2017-01-08-01-N皇后问题、迷宫问题和跳马问题的递归解决
- python数据结构学习笔记-2016-10-27-02-使用单链表实现包ADT
- 网易云课堂-陈越、何钦铭-数据结构-2016春,学习笔记,1.3 应用实例:最大子列和问题
- 算法设计和数据结构学习_4(《数据结构和问题求解》part4笔记)
- 数据结构学习笔记(二) 链表之用循环链表解决约瑟夫问题
- XSL学习笔记:XSLT优先级问题
- 严蔚敏数据结构学习笔记四.串
- jdbc的连接问题-----java数据学习笔记之2
- 数据结构学习笔记--前言