节点的全局变量
Global variables for Nodes
我正在尝试创建一个简单的程序来将单词插入 Linked List
,但我很难理解代表 head
和 [=] 的全局指针14=] Nodes
。
据我了解,如果我要 struct
例如:
typedef struct NODE
{
char *item;
struct Node *next;
} Node, *Node_ptr;
然后我可以简单地通过在 typedef
:
下声明它们来创建全局变量
struct Node_ptr* head = NULL;
struct Node_ptr* next = NULL;
但我是否立即将它们分配给 NULL
?或者用 main
之类的方法来做?另外,我必须在它前面加上struct
吗?
But do I assign them to NULL immediately? Or do that in a method such as main?
如果您不放置显式初始化器,在文件范围内定义的指针(您称之为全局)将自动初始化为 NULL
。因此在 main
中通过赋值初始化它们是多余的。
Also, do I have to have the struct in front of it?
根据您的定义类型和别名类型定义,有 3 种有效(和等效)方式可以声明此类指针:
/* The = NULL initializer is optional at file-scope */
Node_ptr bla = NULL;
Node *bla = NULL;
struct NODE *bla = NULL;
(但不是你不能使用无效的 struct Node_ptr* head = NULL;
。)
首先,正确的方法是:
typedef struct NODE
{
char *item;
struct NODE *next; // Notice here
} Node, *Node_ptr;
而上面的代码等同于
struct NODE
{
char *item;
struct NODE *next;
};
typdef struct NODE Node , *Node_ptr;
然后,你只需要用Node
、struct NODE*
和Node_ptr
声明一个struct NODE
变量,像这样:
Node_ptr head = NULL;
Node_ptr next = NULL;
我认为在声明时将其初始化为 NULL
是一个好习惯。但如果你在 main
.
中这样做也很好
我正在尝试创建一个简单的程序来将单词插入 Linked List
,但我很难理解代表 head
和 [=] 的全局指针14=] Nodes
。
据我了解,如果我要 struct
例如:
typedef struct NODE
{
char *item;
struct Node *next;
} Node, *Node_ptr;
然后我可以简单地通过在 typedef
:
struct Node_ptr* head = NULL;
struct Node_ptr* next = NULL;
但我是否立即将它们分配给 NULL
?或者用 main
之类的方法来做?另外,我必须在它前面加上struct
吗?
But do I assign them to NULL immediately? Or do that in a method such as main?
如果您不放置显式初始化器,在文件范围内定义的指针(您称之为全局)将自动初始化为 NULL
。因此在 main
中通过赋值初始化它们是多余的。
Also, do I have to have the struct in front of it?
根据您的定义类型和别名类型定义,有 3 种有效(和等效)方式可以声明此类指针:
/* The = NULL initializer is optional at file-scope */
Node_ptr bla = NULL;
Node *bla = NULL;
struct NODE *bla = NULL;
(但不是你不能使用无效的 struct Node_ptr* head = NULL;
。)
首先,正确的方法是:
typedef struct NODE
{
char *item;
struct NODE *next; // Notice here
} Node, *Node_ptr;
而上面的代码等同于
struct NODE
{
char *item;
struct NODE *next;
};
typdef struct NODE Node , *Node_ptr;
然后,你只需要用Node
、struct NODE*
和Node_ptr
声明一个struct NODE
变量,像这样:
Node_ptr head = NULL;
Node_ptr next = NULL;
我认为在声明时将其初始化为 NULL
是一个好习惯。但如果你在 main
.