声明指向 NULL 的指针

abp*_*an8 1 c struct pointers

当我声明:

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)

Rob*_*oni 8

每个声明都采用以下格式:

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)