引入:
在我们编程时,经常会用到基本数据类型,但如果我们要描述一个多种特征的事物,又该怎么办呢?
这里我们引入
一、结构体的概念:
结构体是由一批数据聚合而成的结构型数据。
引入结构体,程序设计人员就可以根据需要定义用于描述事物不同属性的多个数据项,然后把这些数据项聚合成一个整体(结构体)来表示事物。
举个例子:
每个学生都有自己的信息。
struct student//结构体名
{
int num;//结构体成员:学号
char name[20];//结构体成员:名字
float score;//结构体成员:成绩
}; //别忘记了这个分号
以上就是结构体的定义。
注意:结构体成员可以是任意类型的变量,但不允许是自身类型的变量。(不能自己的体内再放一个自己)
二、结构体变量的定义和初始化
结构体是一种数据类型,自然和其他基本数据类型一样,在定义了结构体类型后,还需要定义结构体类型的变量,C语言编译器才会为结构体变量分配存储单元,然后才能通过结构体变量来操作和访问结构体的数据。
结构体变量的定义
(1)单独定义
struct 结构体名
{
类型名 结构体成员1;
类型名 结构体成员2;
类型名 结构体成员3;
};
struct 结构体名 结构体变量名表;//结构体变量名表就相当于
//我们输入学生信息所指定的那个学生
(2)混合定义(在定义结构体的同时定义结构体变量)
struct 结构体名
{
类型名 结构体成员1;
类型名 结构体成员2;
类型名 结构体成员3;
}结构体变量名表;//即直接定义学生姓名,不用重复写struct 结构体名,然后再写学生姓名
结构体变量的初始化
和其他基本类型一样,结构体变量也可以初始化
初始化的格式一般为:
struct 结构体名 结构体变量名 = { 初始化值1, 初始化值2......初始化值n};
接下来我们使用上面学生信息来举个例:
struct student//结构体名
{
int num;//结构体成员:学号
char name[20];//结构体成员:名字
float score;//结构体成员:成绩
}; //别忘记了这个分号
struct student = { 1 张三 88.9};
三、结构体变量的使用(" . "与" -> "的使用)
(1)" . "的使用(1级运算符,结合方向从左到右):
结构体变量名 . 结构体成员名
依然使用学生信息来举例:
struct student//结构体名
{
int num;//结构体成员:学号
char name[20];//结构体成员:名字
float score;//结构体成员:成绩
}stu1,stu2;
stu1.score = 90.0;
(2)"->"的使用(1级运算符,结合方向从左到右):
格式:
结构体指针变量名->结构体成员名
还是那个例子:
struct student//结构体名
{
int num;//结构体成员:学号
char name[20];//结构体成员:名字
float score;//结构体成员:成绩
}stu1,stu2;
struct student *p=&stu1;
p->score=55.5;//意为将55.5赋值给p指向的结构体变量stu1的score成员
感谢你看到这里,在学习C语言的路上,我们一起加油!