结构体 - C 语言

定义结构体

结构体名 和 其实例变量名 至少出现其一

1
2
3
4
5
6
7
8
struct SIMPLE
{
int a;
char b;
double c;
};

struct SIMPLE t1, t2[20], *t3;
1
2
3
4
5
6
struct 
{
int a;
char b;
double c;
} s1;

使用 typedef

1
2
3
4
5
6
7
8
typedef struct
{
int a;
char b;
double c;
} Simple2;

Simple2 u1, u2[20], *u3;

如果两个结构体互相包含,则需要对其中一个结构体进行不完整声明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct B;    //对结构体B进行不完整声明

//结构体A中包含指向结构体B的指针
struct A
{
struct B *partner;
//other members;
};

//结构体B中包含指向结构体A的指针,在A声明完后,B也随之进行声明
struct B
{
struct A *partner;
//other members;
};

初始化

定义时指定初始值:

1
2
3
4
5
6
7
struct Books
{
char title[50];
char author[50];
char subject[100];
int book_id;
} book = {"C 语言", "RUNOOB", "编程语言", 123456};

访问结构成员

变量.成员