当我声明:
struct str_node{
int data;
struct str_node *next;
}node;
node *head = NULL;
Run Code Online (Sandbox Code Playgroud)
是不是像这样:
head = NULL;
Run Code Online (Sandbox Code Playgroud)
或者
*head = NULL
Run Code Online (Sandbox Code Playgroud)
每个声明都采用以下格式:
Type varName = initializer;
Run Code Online (Sandbox Code Playgroud)
在你的情况下
node * head = NULL;
^ ^ ^
| Type | | varName | = | initializer |;
Run Code Online (Sandbox Code Playgroud)
所以,head是一个类型是node *(指向node)的变量。变量是head哪个值被初始化为NULL。
小智 5
我想扩大罗伯托的回答。
这个
node *head = NULL;
不会编译,因为node它不是类型,它实际上是一个struct str_node名为node. 如果要定义类型,请使用说明typedef符,就像这样
typedef struct str_node{
int data;
struct str_node *next;
}node;
node *head = NULL;
Run Code Online (Sandbox Code Playgroud)