2024-2025-1 20241329 《计算机基础与程序设计》第十三周学习总结
作业信息
作业归属课程:2024-2025-1-计算机基础与程序设计
作业要求:2024-2025-1计算机基础与程序设计第十三周作业
作业目标:《C语言程序设计》第12章
作业正文:2024-2025-1 20241329 《计算机基础与程序设计》第十三周学习总结
教材学习内容总结
《C语言程序设计》第12章
1. 从基本数据类型到抽象数据类型
- 基本数据类型:C语言中的基本数据类型包括整型(int)、浮点型(float)、字符型(char)等。
- 抽象数据类型:为了处理更复杂的数据结构,C语言引入了构造类型的数据,如结构体(struct)和共用体(union),这些类型可以将不同类型的数据组合在一起,形成更复杂的抽象数据类型。
2. 结构体的定义
- 结构体的定义:使用
struct
关键字定义结构体,语法格式为:
struct 结构体名 {
数据类型 成员名1;
数据类型 成员名2;
...
};
- 结构体变量的定义和初始化:可以在定义时直接初始化结构体变量,或者在定义后进行初始化。初始化时需要按照成员的声明顺序设置字段值。
- 嵌套结构体:结构体可以包含其他结构体作为成员,形成多层嵌套。
3. 结构体数组的定义和初始化
- 结构体数组的定义:与普通数组类似,但每个元素都是一个结构体类型的数据。定义格式如下:
struct 结构体名 {
数据类型 成员名1;
数据类型 成员名2;
...
};
struct 结构体名 数组名[数组大小];
- 结构体数组的初始化:可以在定义数组时进行初始化,初始化时使用大括号表示数组中的元素,并且每个元素都使用大括号表示其成员数据。
4. 结构体指针的定义和初始化
- 指向结构体变量的指针:定义形式为
struct 结构体类型名*指针名;
。例如:
struct Student *pStudent = &student;
- 指向结构体数组的指针:可以指向结构体数组的首地址或单个元素。例如:
struct Student *pStudents = students;
- 使用指针访问结构体成员:可以通过箭头操作符
->
访问结构体指针中的成员变量,或者使用括号访问方式(*指针名).成员名
。
5. 向函数传递结构体
- 直接传递结构体:可以直接将结构体作为参数传递给函数,但这种方式不适合大型结构体,因为会复制整个结构体到调用栈上。
- 传递指向结构体的指针:更常用的方式是传递指向结构体的指针,这样可以避免复制整个结构体,提高效率。例如:
void modifyStudent(struct Student *s) {
s->age = 20;
}
6. 共用体
- 共用体的定义:共用体(union)是一种特殊的构造类型,所有成员共享同一段内存。定义格式如下:
union UnionName {
数据类型 成员1;
数据类型 成员2;
...
};
- 共用体的特点:共用体的内存大小取决于成员中占用空间最大的那个,不能同时初始化所有成员,不能进行比较操作。
7. 枚举数据类型
- 枚举类型的定义:通过
enum
关键字定义枚举类型,用于表示有限个数据值的集合。定义格式如下:
enum EnumName {
Member1,
Member2,
...
};
- 枚举类型的使用:枚举类型常用于定义一组相关的常量。
8. 动态数据结构单向链表
- 单向链表的定义:链表是一种动态数据结构,利用动态内存分配和指针实现。每个节点包含数据域和指针域,用于顺序访问。
- 节点定义:通常使用结构体定义节点,包含数据域和指针域。
- 链表的基本操作:包括链表的创建、插入、删除、遍历等操作。链表节点通常包含指向下一个节点的指针。
- 动态内存分配(如malloc和free)通常用于管理链表节点的内存。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理