目录
C 结构体
结构是 C 编程中另一种用户自定义的可用的数据类型,它允许存储不同类型的数据项,表示一条记录。
定义结构
struct 结构体标签
{
变量定义;
……;
}结构变量;
tag(结构体标签)、member-list(变量定义)、variable-list(结构变量) 这 3 部分至少要出现 2 个。
三种不同的声明方式
声明结构体变量,未声明结构体标签
struct
{
int a;
char b;
double c;
} s1;
声明结构体标签,并声明了三个结构体变量
struct SIMPLE
{
int a;
char b;
double c;
};
struct SIMPLE t1, t2[20], *t3;
用typedef定义了一个新类型,可以用Simple2来定义一个新的结构体变量
typedef struct
{
int a;
char b;
double c;
} Simple2;
Simple2 u1, u2[20], *u3;
结构体的成员可以包含其他结构体,也可以包含指向自己结构体类型的指针。
包含其他结构体:
struct COMPLEX
{
char string[100];
struct SIMPLE a;
};
包含指向自己结构体的指针:
struct NODE
{
char string[100];
struct NODE *next_node;
};
不完整声明
当两个结构体相互包含时,需要对其中一个结构体不完整声明
struct B;
struct A
{
struct B *partner;
};
struct B
{
struct A *partner;
};
结构体变量的初始化
结构体变量可以在定义时指定初始值
访问结构成员
结构作为函数参数
指向结构的指针
例:struct Books *struct_pointer;
使用指向该结构的指针访问结构的成员
struct_pointer->title;