在链表的学习过程,有的时候搞不清楚为什么只是一个指针而已,为什么要设置成struct node *类型。
昨天又有了一点想法:指针地址的关系,以及指针和指针的不同。
一般我们学的都是类似于int *p
或者char *p
这种单纯结构的指针。而在进行链表的学习时,我们用的是复合结构的指针。
可以进行这样的类比:一般单结构的指针,就把它看成是一个单层抽屉,这个抽屉里面装的是需要保存的地址,它指向的是和自己一样的结构的抽屉;而复合结构的指针,把它看成是一个双层的抽屉,它其中一层装的是需要保存的地址,另一层也许装的是需要保存的数字,也许什么都不装,也许装的是垃圾值。它所指向的也是和自己类似结构的抽屉。
另外要记住的是,每个指针自己所在的空间也是有编号的,也就是它自己的地址。
其实,我的理解还是存在偏差,更好的应该是这位博主介绍的一些:链表相关