部分 II. C语言本质
优质
小牛编辑
136浏览
2023-12-01
目录
- 14. 计算机中数的表示
- 1. 为什么计算机用二进制计数
- 2. 不同进制之间的换算
- 3. 整数的加减运算
- 3.1. Sign and Magnitude表示法
- 3.2. 1's Complement表示法
- 3.3. 2's Complement表示法
- 3.4. 有符号数和无符号数
- 4. 浮点数
- 15. 数据类型详解
- 1. 整型
- 2. 浮点型
- 3. 类型转换
- 3.1. Integer Promotion
- 3.2. Usual Arithmetic Conversion
- 3.3. 由赋值产生的类型转换
- 3.4. 强制类型转换
- 3.5. 编译器如何处理类型转换
- 16. 运算符详解
- 1. 位运算
- 1.1. 按位与、或、异或、取反运算
- 1.2. 移位运算
- 1.3. 掩码
- 1.4. 异或运算的一些特性
- 2. 其它运算符
- 2.1. 复合赋值运算符
- 2.2. 条件运算符
- 2.3. 逗号运算符
- 2.4. sizeof运算符与typedef类型声明
- 3. Side Effect与Sequence Point
- 4. 运算符总结
- 17. 计算机体系结构基础
- 1. 内存与地址
- 2. CPU
- 3. 设备
- 4. MMU
- 5. Memory Hierarchy
- 18. x86汇编程序基础
- 1. 最简单的汇编程序
- 2. x86的寄存器
- 3. 第二个汇编程序
- 4. 寻址方式
- 5. ELF文件
- 5.1. 目标文件
- 5.2. 可执行文件
- 19. 汇编与C之间的关系
- 1. 函数调用
- 2.
main
函数和启动例程 - 3. 变量的存储布局
- 4. 结构体和联合体
- 5. C内联汇编
- 6. volatile限定符
- 20. 链接详解
- 1. 多目标文件的链接
- 2. 定义和声明
- 2.1.
extern
和static
关键字 - 2.2. 头文件
- 2.3. 定义和声明的详细规则
- 2.1.
- 3. 静态库
- 4. 共享库
- 4.1. 编译、链接、运行
- 4.2. 动态链接的过程
- 4.3. 共享库的命名惯例
- 5. 虚拟内存管理
- 21. 预处理
- 1. 预处理的步骤
- 2. 宏定义
- 2.1. 函数式宏定义
- 2.2. 内联函数
- 2.3.
#
、##
运算符和可变参数 - 2.4. 宏展开的步骤
- 3. 条件预处理指示
- 4. 其它预处理特性
- 22. Makefile基础
- 1. 基本规则
- 2. 隐含规则和模式规则
- 3. 变量
- 4. 自动处理头文件的依赖关系
- 5. 常用的
make
命令行选项
- 23. 指针
- 1. 指针的基本概念
- 2. 指针类型的参数和返回值
- 3. 指针与数组
- 4. 指针与
const
限定符 - 5. 指针与结构体
- 6. 指向指针的指针与指针数组
- 7. 指向数组的指针与多维数组
- 8. 函数类型和函数指针类型
- 9. 不完全类型和复杂声明
- 24. 函数接口
- 1. 本章的预备知识
- 1.1.
strcpy
与strncpy
- 1.2.
malloc
与free
- 1.1.
- 2. 传入参数与传出参数
- 3. 两层指针的参数
- 4. 返回值是指针的情况
- 5. 回调函数
- 6. 可变参数
- 25. C标准库
- 1. 字符串操作函数
- 1.1. 初始化字符串
- 1.2. 取字符串的长度
- 1.3. 拷贝字符串
- 1.4. 连接字符串
- 1.5. 比较字符串
- 1.6. 搜索字符串
- 1.7. 分割字符串
- 2. 标准I/O库函数
- 2.1. 文件的基本概念
- 2.2. fopen/fclose
- 2.3. stdin/stdout/stderr
- 2.4. errno与perror函数
- 2.5. 以字节为单位的I/O函数
- 2.6. 操作读写位置的函数
- 2.7. 以字符串为单位的I/O函数
- 2.8. 以记录为单位的I/O函数
- 2.9. 格式化I/O函数
- 2.10. C标准库的I/O缓冲区
- 2.11. 本节综合练习
- 3. 数值字符串转换函数
- 4. 分配内存的函数
- 26. 链表、二叉树和哈希表
- 1. 链表
- 1.1. 单链表
- 1.2. 双向链表
- 1.3. 静态链表
- 1.4. 本节综合练习
- 2. 二叉树
- 2.1. 二叉树的基本概念
- 2.2. 排序二叉树
- 3. 哈希表
- 27. 本阶段总结