在 pset 5s 演练中,节点结构定义如下:
typedef struct node
{
int value;
struct node* next
} node;
node* head = malloc(sizeof(node));
cursor = head;
//update the cursor
cursor->next
当我们使用光标 -> next 语句时,跳转到下一个节点。结构如何确切地知道跳到下一个,是什么将它们连接起来?
我知道光标指向"当前节点",然后 -> next 将转到链表中的下一个节点。
定义节点结构时,next 是预定义的关键字吗?
就我对指针的理解而言,我们正在创建一个指向结构节点的指针并将其称为"next",但我看不到节点是如何连接的。
谢谢
就像 head 指向当前节点一样,当前节点中的next
指向其他节点。但是要移动到next
节点,您必须编写cursor = head - > next
或cursor = cursor - > next
,而不仅仅是cursor - > next
。也就是说,您必须将光标移动到下一个节点才能访问其数据。请注意,您必须使用 也许cursor - > next = malloc(sizeof(node)) ;
将节点分配给下一个节点。否则,如果您尝试访问下一个节点的数据,则会出现分段错误。也许你应该再次浏览指针和结构部分以清楚地理解它。确保你也看到短裤。