数据结构-结构体及typedef声明结构体(个人笔记
结构体
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。
菜鸟第一次写博客欢迎大佬指出错误!