【发布时间】:2016-03-20 11:31:38
【问题描述】:
1 struct node
2 {
3 int data;
4 struct node *next;
5 }*head;
6
7 void append(int num)
8 {
9 struct node *temp,*right;
10 temp= (struct node *)malloc(sizeof(struct node));
11 temp->data=num;
12 right=(struct node *)head;
13 while(right->next != NULL)
14 right=right->next;
15 right->next =temp;
16 right=temp;
17 right->next=NULL;
18 }
我需要帮助来理解这段代码的某些部分。
1) 代码应该做什么?
2) 第 5 行是做什么的?
}*head;
我在制作结构时经常看到这个:
struct node
{
int data;
struct node *next;
};
3) 第 12 行应该做什么?不确定这个语法
right=(struct node *)head;
我的猜测是它会获取 head 所指向的内容并正确指向它。那为什么不干脆做:right = head;
谢谢!
【问题讨论】:
-
仅供参考,此代码中的 两个 类型转换都不是必需的。我经常被人们在代码中输入不必要的杂乱的倾向所迷惑。编写有效的代码已经够难了;用不必要的垃圾乱扔垃圾并不能让它变得更好。
-
如果我这样做,它会喜欢something like this。我想,不同的人有不同的笔画。
标签: c pointers syntax linked-list