4

我是编程新手,所以请多多包涵。谁能解释一下最后一行代码在做什么以及整个代码块试图做什么。我知道第一个块是创建一个名为 node 的结构并向它添加两个指针 *next 和 *prev。顺便说一句,这是链表程序的一部分

struct node
 {
  char line[80];
  struct node *next,*prev;
 };

struct node *start=NULL,*temp,*temp1,*temp2,*newnode;

先感谢您。

4

4 回答 4

6
struct node *start=NULL,*temp,*temp1,*temp2,*newnode;

可以作为

struct node *start=NULL;
struct node  *temp;
struct node *temp1;
struct node *temp2;
struct node *newnode;

现在很容易理解..?

于 2013-03-17T05:08:03.400 回答
4

最后一行是创建 5 个类型的指针,struct nodestart指向NULLtemptemp1和。temp2newnode

整个代码块实际上是创建一个名为的结构体node,其中包含一个 80 个字符的数组,后跟指向下一个和上一个的指针。因此,它正在为双向链表创建一个结构。

于 2013-03-17T05:05:35.603 回答
2

最后一行是创建 5 个 struct node 类型的指针。这里 start 被初始化为 Null。

于 2013-03-17T05:06:33.007 回答
2

最后一行代码定义了 5 个变量,它们都是指向struct node. 其中之一,start,被初始化为 NULL;如果变量在任何函数之外,其他变量也初始化为 NULL,但如果它们在函数内部,则未初始化。未初始化的指针应在使用前进行初始化。不应取消引用空指针;疯狂位于空指针(或更常见的是核心转储)的末尾。

于 2013-03-17T05:06:49.607 回答