数据结构-结构体及typedef声明结构体(个人笔记)

mac2022-06-30  95

数据结构-结构体及typedef声明结构体(个人笔记

结构体1.一般形式的结构体2.使用typedef的结构体(注:typedef的意义是起别名)1. 一般形式2. 省略了结构体名形式

结构体

1.一般形式的结构体

struct Node { //Node是结构体名 int a; char x; }node1; //node1是全局变量

2.使用typedef的结构体(注:typedef的意义是起别名)

1. 一般形式
typedef struct Node{ int a; char x; }node;//node是结构体的别名

别名node可以用于代替“struct Node”,如下:

struct Node* p; node* p;

这两句的意义是相同的,区别在于前者可以在结构体内部声明变量,后者不能。在结构体外都一样。如下

//1 typedef struct Node { int a; char x; struct Node* p; //声明指针变量p }node; //2 node *p; //声明指针变量p

如果直接在结构体内用别名声明变量会报错,例如:

typedef struct Node { int a; char x; node* p; //这句就是错误的 }node;
2. 省略了结构体名形式
typedef struct{ int a; char x; }node;//node是结构体别名

这样声明的结构体就只有一个名字了,即node。

菜鸟第一次写博客欢迎大佬指出错误!

最新回复(0)