typedef struct node{}node,*link表示什么意思
时间: 2023-07-07 14:11:09 浏览: 202
`typedef struct node {} node, *link;` 这行代码定义了一个结构体 `node` 和一个指向该结构体的指针类型 `link`,具体解释如下:
1. `struct node {}`:这是定义一个结构体类型 `node`,其中 `{}` 中可以定义结构体的成员变量,例如:
```c
struct node {
int data;
struct node* next;
};
```
上面的代码定义了一个结构体类型 `node`,其中包含两个成员变量:一个是整型变量 `data`,一个是指向 `node` 结构体类型的指针变量 `next`。
2. `node, *link`:这是通过 `typedef` 关键字将结构体类型 `node` 和指针类型 `link` 定义为别名。其中 `node` 表示将 `struct node {}` 定义为 `node` 类型,`*link` 表示将 `struct node*` 定义为 `link` 类型。
这里我们可以理解为 `node` 和 `link` 都是新的数据类型,其中 `node` 表示结构体类型,`link` 表示指向结构体类型的指针类型。这样我们就可以用 `node` 来定义结构体变量,用 `link` 来定义指向结构体的指针变量。
例如,我们可以用 `node` 来定义一个结构体变量 `n`:
```c
node n = {1, NULL};
```
这样就定义了一个结构体变量 `n`,其中 `data` 成员变量的值为 `1`,`next` 成员变量的值为 `NULL`。
同样地,我们可以用 `link` 来定义一个指向结构体的指针变量 `p`:
```c
link p = &n;
```
这样就定义了一个指向结构体变量 `n` 的指针变量 `p`。
总之,`typedef struct node {} node, *link;` 这行代码定义了一个结构体类型 `node` 和一个指向该结构体的指针类型 `link`,这样做的好处是可以方便地定义结构体变量和指针变量,使得代码更加简洁易读。
阅读全文