第八节:结构体

一.结构体的概念

结构体属于用户自定义的数据类型,允许用户存储不同的数据类型,即好多个数据类型的集合组装成一个数据类型

二.结构体的定义和使用

语法:struct 结构体名称{结构体成员列表}

通过结构体创建变量的方式有三种:

(一)struct 结构体名 变量名

第八节:结构体_第1张图片

(二)struct 结构体名 变量名={成员1值、成员2值}

第八节:结构体_第2张图片

(三)定义结构体时顺便创建变量

第八节:结构体_第3张图片

在C++中定义结构体的时候是坚决不能省略的;结构体变量创建时,struct关键字可以省略,但不建议省略,增加可读性;

结构体之间使用操作符"."来实现访问成员

三.结构体数组

将自定义的结构体放入数组中方便维护

语法:struct 结构体名称 数组名称[元素个数]={{},{},{}}

(一)创建结构体数组

第八节:结构体_第4张图片

(二)修改结构体数组变量

第八节:结构体_第5张图片

(三)遍历结构体数组

第八节:结构体_第6张图片

四.结构体指针

利用操作符"—>"可以通过结构体指针访问结构体属性

第八节:结构体_第7张图片

p->name=*p.name

五.结构体嵌套结构体

定义:结构体的成员可以是另一个结构体

代码案例:老师辅导学生,一个老师的结构体中,记录一个学生的结构体

第八节:结构体_第8张图片

第八节:结构体_第9张图片

在结构体中定义的另一个结构体需要先写在前面,让计算机先知道这个结构体的存在

六.结构体做函数参数

使用结构体作为参数传递给函数

传递方法:

(一)值传递

第八节:结构体_第10张图片

(二)地址传递

第八节:结构体_第11张图片

七.结构体中const的使用场景

使用const来防止误操作

第八节:结构体_第12张图片

将函数中的形式参数改为指针,可以减少内存空间量,同时防止再生成副本

八.结构体案例

案例一:

学校正在做毕设项目,每名老师带领5个学生,总共有三名老师,需求如下:

设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和存放5名的数组作为成员,学生的姓名,考试分数,创建数组存放3名老师,通过函数给每个老师分配以及所带的学生赋值,最终打印出老师数据以及老师所带的学生数据

(一)构建结构体数组:

第八节:结构体_第13张图片

(二)主文件

第八节:结构体_第14张图片

(三)创建文件

第八节:结构体_第15张图片

(四)打印文件

第八节:结构体_第16张图片

(五)输出结果(随机的)

第八节:结构体_第17张图片

案例二

案例描述

设计一个英雄的结构体,包括成员姓名、年龄、性别,创建结构体数组,数组中存放5名英雄,通过冒泡排序算法,将数组中英雄按照年龄进行排序,最终打印怕排序后结果

(一)定义结构体

第八节:结构体_第18张图片

(二)主程序

第八节:结构体_第19张图片

(三)冒泡排序函数

第八节:结构体_第20张图片

注意:结构体之间的交换需要在原来结构体的基础上新定义一个结构体用作交换的容器

(四)打印函数

第八节:结构体_第21张图片

你可能感兴趣的:(#,C++基础编程,算法,数据结构,c++,开发语言,程序人生)