结构体
结构体存在的意义:在之前的学习中,首先接触到了同一种类型数据的集合-数组但是如果需要对不同的数据的集合进行描述,显然只有数组是非常的麻烦的。比如去描述一个班级学生的信息情况,这里就需要有姓名、学号、年龄,身高等信息,如果使用数组进行存储,那么就注定需要将学生的信息进行分类存储,这在查找某一名学生的信息时是非常不便的,因此就需要有结构体这一类型用来存储不同类型的数据。
<1>结构体声明及定义形式:
struct tag{
member-list;
}variable-list;
通常我们将使用结构体定义变量放在函数内部,需要时再定义。下边举例使用typedef和不使用的定义方式。结构体的成员可以是标量、变量、指针、其他结构体。
//定义一个学生的结构体,包含:姓名、性别、年龄、学号等信息。
struct stu{
char name[10];
char sex;
int age;
char ID[10];
};
//使用typedef简化结构体变量类型。
typedef struct stu{
char name[10];
char sex;
int age;
char ID[10];
}str_s;
<2>结构体变量的定义和初始化
int main()
{
str_s lisi = { "lisi", 'M', 23, "1507080226" }; //定义+初始化
str_s zhangsan; //只定义未初始化
//对zhangsan进行赋值,对于字符数组类型的变量,可以使用控制台输入,也可以依数组逐元素输入
scanf("%s