基础篇 了解C语言的魅力
第1章 走进职场实战:了解 C语言
1.1 编程语言
1.1.1 机器语言
1.1.2 汇编语言
1.1.3 高级语言
1.2 C语言的基本情况
1.2.1 C语言大事记
1.2.2 不要再搞混 “C”家族语言,它们各不相同
1.2.3 C语言在实际运用中的优势
1.2.4 C语言的书写 “特立独行”
1.3 搭建 C语言的开发环境
1.3.1 安装 VisualStudioCode
1.3.2 安装 VSCode小插件
1.3.3 修改环境变量,让 C语言 “畅行无阻”
1.4 编写个 C语言程序———HelloWorld.c
第2章 走近 “数据元素”,了解数据类型与运算符
2.1 关键字
2.1.1 案例导入———会员卡次数计算
2.1.2 关键字在案例中的运用
2.2 数据类型
2.2.1 基本类型
2.2.2 结构类型
2.2.3 指针类型
2.2.4 空类型
2.3 常量与变量
2.3.1 案例导入——素数计算
2.3.2 变量在素数计算时的用法
2.4 数据的输入与输出
2.4.1 案例导入——大小写转换
2.4.2 输入/输出函数的应用
2.5 运算符
2.5.1 运算符的种类
2.5.2 运算符的优先级
2.6 为重构和调用做准备——代码注释
2.7 没有规矩,不成方圆——编码也要注意规范
2.7.1 编码的常见错误
2.7.2 编码规范的注意事项
第3章 走向基本语句,为变量增加关联
3.1 循环语句
3.1.1 案例导入——数学计算
3.1.2 数学计算中如何使用 while循环
3.1.3 while循环语句
3.1.4 do-while循环语句
3.1.5 while语句和do-while语句的区别
3.1.6 for语句
3.2 判断语句
3.2.1 案例导入——排序问题
3.2.2 排序问题中if判断的应用
3.2.3 if语句
3.2.4 ifelse语句
3.2.5 if???elseif???else语句
3.2.6 switch???case语句
3.2.7 if???elseif???else语句和switch???case语句的区别
3.3 将关系转移的方式、
3.3.1 goto语句与if伴生,遇真就失效
3.3.2 continue语句
3.3.3 break语句
第4章 巧用宏和枚举实现自由赋值
4.1 宏
4.1.1 案例导入——宏定义
4.1.2 宏对象在函数中的应用
4.1.3 宏对象在函数中的意义
4.1.4 使用宏创建一个缺项
4.1.5 宏保护变量
4.1.6 定义宏时的 “坑”
4.2 枚举变量
4.2.1 案例导入——拨钟问题
4.2.2 枚举在拨钟问题中的应用
4.3 枚举变量的基本操作
4.3.1 声明一个枚举变量
4.3.2 给一个枚举变量进行赋值
4.3.3 调用枚举变量中的数值
第5章 巧用函数整合零散语句,使语句更加模块化
5.1 函数
5.1.1 案例导入——利用递归求阶乘
5.1.2 递归函数在求阶乘的案例中的应用
5.1.3 如何增加函数被调用的概率
5.2 函数与零散语句相辅相成
5.2.1 函数的构成
5.2.2 函数的定义
5.2.3 函数的功能
5.2.4 函数的分类
5.2.5 函数的调用
5.3 函数的形参与实参
5.3.1 函数里不能缺的元素——形参
5.3.2 函数执行结果的 “掌舵人”——实参
5.3.3 有哪些方法传入实参
拓展篇 掌握C语言的核心知识
第6章 巧用预处理,让并行变成可能
6.1 用好预处理,并发能力将大大提高
6.1.1 提高程序并发能力——文件包含
6.1.2 文件包含命令的应用
6.2 低调而隐性的预处理
6.2.1 案例导入——改写字符
6.2.2 条件编译
6.2.3 宏定义
6.2.4 预处理的优点
6.2.5 预处理命令使用注意事项
第7章 巧用函数库,实现代码 “变薄”
7.1 函数库增强复用性,减少重复代码
7.1.1 案例导入——引用函数库
7.1.2 函数库的应用
7.2 写好头文件,弊病远离你
7.2.1 程序桥梁——头文件
7.2.2 头文件的应用
7.2.3 头文件的编写
7.2.4 头文件的注意事项
7.3 重构代码,让功能更直观
第8章 巧用数组技巧,让程序变得饱满
8.1 数组令人惊叹的承载能力
8.1.1 案例导入——求和计算
8.1.2 数组的应用
8.2 一维数组行天下,精简的数组类型
8.2.1 一维数组精简
8.2.2 一维数组的初始化
8.2.3 一维数组的天然优势
8.3 二维数组增承载,适合复杂数据使用
8.3.1 案例导入——矩阵相加
8.3.2 二维数组承载多个数据
8.3.3 二维数组的初始化
8.3.4 二维数组——矩阵运算中的高手
8.4 字符串的 “进化型”,字符串之库——字符数组
8.4.1 案例导入——字符的判断
8.4.2 字符数组——字符串的救星
8.4.3 别再弄混字符数组和字符串
8.5 一秒学会使用字符数组
8.6 索引越界常见,索引细则很关键
第9章 C语言的特色——指针操作技巧
9.1 数据有 “上”又有 “下”,交流全靠它
9.1.1 案例导入——指针
9.1.2 指针变量——另类的 “数据”传递
9.2 指针的移动规则
9.2.1 指针的 “前后移动”
9.2.2 指针的关系运算规则
9.2.3 指针的赋值规则
9.3 指针能解决的实际问题
9.3.1 指针——有参函数的 “王炸”
9.3.2 指针——一维数组的 “王者”
9.3.3 指针——字符串隐藏的 “奇兵”
9.3.4 指针——指向函数不常见
第10章 让数据产生关联性——链表操作技巧
10.1 让数据产生关联,链表有序生成
10.2 链表的S型形态
10.2.1 内存管理函数——为链表 “量身定制”
10.2.2 定义功能函数——让链表使用简单化
10.2.3 链表和数组的比较
第11章 让变量存储更自由——结构体与联合体
11.1 跨类型存储新宠——结构体
11.1.1 结构体——整合不同数据类型
11.1.2 使用超方便的结构体变量
11.2 如何操作一个结构体
11.3 内存不够就找联合体解决
11.4 谈谈联合体的 “克星”
第12章 巧用代码解决文件读写需求
12.1 如何定义 C语言中的文件
12.2 文件读取状态怎么获取
12.3 文件的读写操作——fopen()
12.4 将文件关闭的操作——fclose()
12.5 文件读写函数——fgetc()和fputc()
12.6 成块读写文件——fread()和fwrite()
12.7 其他能操作文件的函数
第13章 项目前瞻1——网络基础知识
13.1 网络通信包含哪些内容
13.2 将网络按连接范围进行分类
13.3 常用服务占用的端口号
13.4 常用套接字
13.5 TCP和 UDP协议
13.6 C语言代码是如何接入互联网的
第14章 项目前瞻2——数据库基础知识
14.1 大数据时代的数据库
14.1.1 数据库的变迁
14.1.2 数据库的两大类别
14.1.3 大数据时代数据库的应用
14.2 mysql数据库
14.3 redis数据库
14.4 C语言和数据库如何实现互联互通
实战篇 挑战C语言项目
第15章 C语言函数专场
15.1 项目1——函数小剧场
15.2 项目2——指针的妙用
第16章 C语言赋予软件功能与生命力
16.1 项目1——工资管理系统
16.2 项目2——电影票订票管理系统
参考文献