c语言p=L;是什么意思,还有p=L->next;是什么意思,这两个语句有什么区别,L为链表的头结点

2024-12-12 10:54:39
推荐回答(2个)
回答1:

以后问的时候希望再说的清楚一点

问这个问题看来你c的知识了解的还不是很够,链表的知识也有点贫乏啊

链表的话 这里p,L的类型应该都是自己定义的结构体 Node

大致
struct Node{
int entry;

struct Node* next;

}
Node这个结构体里存放了两个变量,
entry就是节点的内容,next是一个Node型指针,存放着下一个节点的地址,指向下一个节点

而所谓链表就是一串节点连在一起,像数组一样,比数组的优点就是比如在数组中间要插入一个数的话,插入位置之后的每一个元素都要向后移一位,而链表的话只需要修改插入位置前的节点的指针就可以了。

你这里的两个语句都是简单的赋值,p = L;就是把让自己定义的Node p = 头结点,
而p = L->next就是让p = 头结点的后一个节点。

这里 ->是结构体中的运算符,表示使用这个结构体中的某个指针变量。

回答2:

p=L是让p指向L这个节点。 p=L->next是让p指向L的下一个节点。首先链表定义中next的定义必须是指向L类型的指针。