当前位置: 首页>编程语言>正文

C语言第六篇-结构体

一、结构体的概念

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个学生的信息

C语言第六篇-结构体,C语言第六篇-结构体_结构体数组,第1张


https://www.xamrdz.com/lan/54e1960958.html

相关文章: