我是一个编程新手,所以请原谅我。谁能解释一下最后一行代码在做什么,以及这一整块代码要做什么。我知道第一个块是创建一个名为node的结构,并添加两个指针*next和*prev到它。顺便说一句,这是链表程序的一部分
struct node
{
char line[80];
struct node *next,*prev;
};
struct node *start=NULL,*temp,*temp1,*temp2,*newnode;
提前感谢。
struct node *start=NULL,*temp,*temp1,*temp2,*newnode;
可以写成
struct node *start=NULL;
struct node *temp;
struct node *temp1;
struct node *temp2;
struct node *newnode;
现在很容易理解…?
最后一行创建了5个类型为struct node
的指针,即start
,它指向NULL
, temp
, temp1
, temp2
和newnode
。
整个代码块实际上创建了一个名为node
的结构体,它包含一个80个字符的数组,后面跟着指向next和previous的指针。因此,它正在为一个双重链表创建一个结构。
最后一行创建了5个struct node类型的指针。这里start初始化为Null
最后一行代码定义了5个变量,它们都是指向struct node
的指针。其中一个start
初始化为NULL;如果变量在任何函数之外,其他变量也初始化为NULL,但如果它们在函数内部,则不初始化。未初始化的指针在使用之前应该初始化。空指针不应该被解引用;疯狂存在于空指针的末尾(或者,更常见的是,一个核心转储)。