一、什么是结构体?
结构体是一些值的集合,这些值被称为成员变量,每个成员变量可以是不同类型的变量
二、结构体的声明
成员变量可以是普通类型变量(int short float……),也可以是指针变量,甚至可以是结构体变量
struct tea { short age; char name[20]; double* height; float* weight; }; struct stu { short age; char name[20]; double* height; float* weight; struct tea t; };
三、结构体变量的定义
以上述代码为例,结构体类型是 struct tea,struct stu
定义结构体变量:
struct tea { short age; char name[20]; double* height; float* weight; }t1,t2;//全局变量 struct stu { short age; char name[20]; double* height; float* weight; struct tea t; }s1,s2;//全局变量 struct tea t3;//局部变量 struct tea t4;//局部变量 struct stu s3;//局部变量 struct stu s4;//局部变量
四、结构体变量的初始化两种方式
1.按顺序初始化:
double height = 180; float weight = 80; //初始化老师1 struct tea t1 = { 30,"老师1",&height,&weight }; //初始化学生1 struct stu s1 = { 28,"学生1",&height,&weight,{ 30,"老师1",&height,&weight } };
2.指定成员变量初始化:
未初始化的变量默认初始化为0
其中,对于char类型数组的初始化需要用到 库函数 strcpy
struct tea t1; t1.age = 30; t1.weight = &weight; struct stu s1; strcpy(s1.name,"学生1"); s1.age = 20; s1.height = &height; s1.t.age = 30; s1.t.height = &height;