自定义内存详解
1. 结构体
结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
1.1 匿名结构体
在声明结构体时,可以不完全声明;
//匿名结构体类型
struct
{
int a;
char b;
float c;
}x;
struct
{
int a;
char b;
float c;
}a[20], *p;
对于两个结构体变量,哪怕内部成员完全一致,也是两种类型。
1.2 结构体的自引用
在结构中包含一个类型为该结构本身的成员;
struct Node
{
int data;
struct Node* next;
};
1.3 定义
类型的使用是在类型的定义之后的,不能先使用后定义;
typedef struct Node//定义应该在使用之前,否则无法编译成功
{
int data;
struct Node* next;
}node;//重命名之后的名字和之前最好保持不一样;
1.4 结构体变量的初始化
struct Point
{
int x;
int y;
}p1; //声明类型的同时定义变量p1
struct Point p2; //定义结构体变量p2
//初始化:定义变量的同时赋初值。
struct Point p3 =