封面
版权信息
前言
参与本书整理和编写的学生
第1章 C语言与内存
1.1 引言
1.2 计算机程序运行的目的
1.3 位、字节、半字、字的概念和内存位宽
1.4 内存编址和寻址、内存对齐
1.5 C语言如何操作内存
1.6 内存管理之结构体
1.7 内存管理之栈(stack)
1.8 内存管理之堆
课后题
第2章 C语言位操作
2.1 引言
2.2 常用位操作符
2.3 位操作与寄存器
2.4 位运算构建特定二进制数
2.5 位运算实战演练1
2.6 位运算实战演练2
2.7 技术升级:用宏定义来完成位运算
课后题
第3章 指针才是C语言的精髓
3.1 引言
3.2 指针到底是什么
3.3 理解指针符号
3.4 野指针与段错误问题
3.5 const关键字与指针
3.6 深入学习数组
3.7 指针与数组的天生“姻缘”
3.8 指针类型与强制类型转换
3.9 指针、数组与sizeof运算符
3.10 指针与函数传参
3.11 输入型参数与输出型参数
课后题
第4章 C语言复杂表达式与指针高级应用
4.1 引言
4.2 指针数组与数组指针
4.3 函数指针与typedef
4.4 函数指针实战1——用函数指针调用执行函数
4.5 函数指针实战2——结构体内嵌函数指针实现分层
4.6 再论typedef
4.7 二维数组
课后题
第5章 数组&字符串&结构体&共用体&枚举
5.1 引言
5.2 程序中的内存从哪里来
5.3 堆
5.4 内存中的各个段
5.5 C语言的字符串类型
5.6 字符串和字符数组的细节
5.7 结构体概述
5.8 结构体的对齐访问
5.9 offsetof宏与container_of宏
5.10 共用体(union)
5.11 大小端模式
5.12 枚举enum
课后题
第6章 C语言的预处理、函数和函数库
6.1 引言
6.2 C语言为什么需要编译链接
6.3 预处理详解
6.4 常见的预处理详解
6.5 函数的本质
6.6 函数的基本使用
6.7 递归函数
6.8 库函数
6.9 常见的库函数之字符串函数
6.10 常见的库函数之数学库函数
6.11 制作静态链接库并使用
6.12 制作动态链接库并使用
课后题
第7章 存储类&作用域&生命周期&链接属性
7.1 引言
7.2 概念解析
7.3 Linux下C程序的内存映像
7.4 存储类相关的关键字1
7.5 存储类相关的关键字2
7.6 作用域详解
7.7 变量的生命周期
7.8 链接属性
课后题
第8章 C语言关键细节讨论
8.1 引言
8.2 操作系统概述
8.3 main函数返回值
8.4 argc、argv与main函数的传参
8.5 void类型的本质
8.6 C语言中的NULL
8.7 运算中的临时匿名变量
8.8 顺序结构
8.9 程序调试
课后题
第9章 链表&状态机&多线程
9.1 引言
9.2 链表的引入
9.3 单链表的实现之构建第一个节点
9.4 单链表的实现之从尾部插入节点
9.5 单链表的算法之从头部插入节点
9.6 单链表的算法之遍历节点
9.7 单链表的算法之删除节点
9.8 单链表的算法之逆序
9.9 双链表的引入和基本实现
9.10 双链表的算法之插入节点
9.11 双链表的算法之遍历
9.12 双链表的算法之删除节点
9.13 Linux内核链表
9.14 内核链表的基本算法和使用简介
9.15 什么是状态机
9.16 用C语言实现简单的状态机
9.17 多线程简介
课后题
第10章 程序员和编译器的暧昧
10.1 引言
10.2 编程工作的演进史
10.3 程序员、编译器和CPU之间的三角恋
10.4 像编译器一样思考吧——理论篇
10.5 像编译器一样思考吧——实战篇
课后题
附录 答案
第1章 课后题答案
第2章 课后题答案
第3章 课后题答案
第4章 课后题答案
第5章 课后题答案
第6章 课后题答案
第7章 课后题答案
第8章 课后题答案
第9章 课后题答案
第10章 课后题答案
内容简介
作者简介
更新时间:2019-01-05 01:03:06