一.结构体的声明

1.1 概述

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

复杂对象

人:名字+电话+性别+身高

书:书名+作者+定价+书号

复杂对象的描述会用到结构体。

1.2 声明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//人
struct Peo
{
char name[20];
char tele[12];
char sex[5];//性别
int high;
};

int main()
{
struct Peo p1={0};//结构体变量的创建

reyutn 0;
}
1
2
3
4
5
6
7
8
struct Peo
{
char name[20];
char tele[12];
char sex[5];//性别
int high;
}p1,p2;//p1,p2也可这样创建,但是放在外面为全局变量。

struct Peo为结构体类型,p1为结构体变量。

1.3 结构体成员的类型

结构体的成员可以是标量,数组,指针,甚至是其他结构体。

1.4 结构体的初始化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//人
struct Peo
{
char name[20];
char tele[12];
char sex[5];//性别
int high;
};

int main()
{
struct Peo p1={"张三","19721365940","男",181};//结构体变量的初始化

return 0;
}

结构体包含结构体的初始化:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//人
struct Peo
{
char name[20];
char tele[12];
char sex[5];//性别
int high;
};

//人
struct BT
{
struct Peo p;
int num;
float f;
};

int main()
{
struct Peo p1={"张三","19721365940","男",181};//结构体变量的创建
struct BT s = {{"李四","15826805684","女",164},100,3.14f};

printf("%s %s %s %d\n",p1.name,p1.tele,p1.sex,p1.high);
printf("%s %s %s %d %d %f\n",s.p.name,s.p.tele,s.p.sex,s.p.high,s.num,s.f);

return 0;
}

二.结构体成员的访问