一、结构体的概念
1.结构体是什么?
在实际的应用中,往往变量的类型复杂多变,我们仅仅使用C语言内置的类型无法准确的去定义变量,所以引出了结构体这个概念。也就是说,为了描述复杂类型的个体,只用C语言基础的内置类型不能完整的表述,而结构体就可以很好的解决这个问题。
结构体本质上还是一种数据类型,但它可以包括若干个“成员”,每个成员的类型可以相同也可以不同,也可以是基本数据类型或者又是一个构造类型
结构体定义
在定义结构体的时候,大括号最后一定不要忘记分号:‘;’
我们举个简单的例子:我们定义一个名为Student的结构体,该结构体的成员包括:姓名,学号,性别,年龄,总成绩等。
//struct是一个
struct Student //定义一个名为Student的结构体
{
char name[20]; //姓名
int id; //学号
char sex; //性别(1:男 0:女)
int age; //年龄
int score; //总成绩
};
结构体变量的初始化
struct Student stu1; //若不给结构体初始值,则里面的值均为【随机值】
struct Student stu2 = { "Feizhang" }; //若给结构体只赋值一部分,则后面的全部赋为0
struct Student* stup = &stu1; //定义一个结构体类型的指针stup,指向stu1
struct Student* stuq; //理论上stuq为随机值,但在这里指向0Xcccccccc(Debug模式下会优化为cccccccc)
struct Student Stu_arr[10]; //定义一个结构体数组,若不给初始值,则为随机值
二、结构体的使用
1.如何去使用结构体?
1.1结构体的普通变量如如何访问结构体成员
结构体普通变量如何访问其成员:C语言规定,结构体的普通成员可以通过运算符“点.”去访问其成员,例如:
struct Student stu1 = { "Bulv", 20, 1001, 1, 90 }; //定义结构体变量stu1并初始化
struct Student stu2 = { "Feizhang", 22, 1002, 1, 95 }; //定义结构体变量stu2并初始化
stu1.id = 1003; //通过结构体变量stu1去访问成员id,并将其值修改为1003
printf("%s\n", stu1.name); //打印学生stu1的姓名
printf("%d\n", stu1.age); //打印学生stu1的年龄
strcpy_s(stu1.name, 10, "caopi"); //修改stu1的第一个变量name的值(char类型不能直接赋值)
2.结构体数组
在上面的例子中,我们都只是定义一个结构体变量,但在实际中,结构体变量不止一个,所以就需要一个数组来去存储。对比一般数组的定义,结构体数组也可以用相同的方式去定义、使用。下面举个例子:
struct Student //定义一个名为Student结构体
{
char name[20]; //姓名
int age; //年龄
int id; //学号
}stu[5]; //定义一个结构体数组stu[5],其长度是5,相当于要记录5个学生的信息
标签:stu1,struct,定义,C语言,Student,第六篇,变量,结构
From: https://www.cnblogs.com/zh718594493/p/18192481