我是编程新手,所以请多多包涵。谁能解释一下最后一行代码在做什么以及整个代码块试图做什么。我知道第一个块是创建一个名为 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 个字符的数组,后跟指向下一个和上一个的指针。因此,它正在为双向链表创建一个结构。
最后一行是创建 5 个 struct node 类型的指针。这里 start 被初始化为 Null。
最后一行代码定义了 5 个变量,它们都是指向struct node
. 其中之一,start
,被初始化为 NULL;如果变量在任何函数之外,其他变量也初始化为 NULL,但如果它们在函数内部,则未初始化。未初始化的指针应在使用前进行初始化。不应取消引用空指针;疯狂位于空指针(或更常见的是核心转储)的末尾。