参考文献:The C Programming Language
1 介绍
1.1 入门
1.2 变量与算术表达式
1.3 for 语句
1.4 符号常量
1.5 字符输入/输出
1.6 数组
1.7 函数
1.8 参数 — 传值调用
1.9 字符数组
1.10 外部变量与作用域
2 类型、运算符与表达式
2.1 变量名
2.2 数据类型及长度
2.3 常量
2.4 声明
2.5 算术运算符
2.6 关系运算符与逻辑运算符
2.7 类型转换
2.8 自增运算符与自减运算符
2.9 按位运算符
2.10 赋值运算符与表达式
2.11 条件表达式
2.12 运算符优先级与求值次序
3 控制流
3.1 语句与程序块
3.2 if-else 语句
3.3 else-if 语句
3.4 switch 语句
3.5 while 循环与 for 循环
3.6 do-while 循环
3.7 break 语句与 continue 语句
3.8 goto 语句与标号
4 函数与程序结构
4.1 函数的基本知识
4.2 返回非整型值的函数
4.3 外部变量
4.4 作用域规则
4.5 头文件
4.6 静态变量
4.7 寄存器变量
4.8 程序块结构
4.9 初始化
4.10 递归
4.11 C 预处理器
5 指针与数组
5.1 指针与地址
5.2 指针与函数参数
5.3 指针与数组
5.4 地址算术运算
5.5 字符指针与函数
5.6 指针数组以及指向指针的指针
5.7 多维数组
5.8 指针数组的初始化
5.9 指针与多维数组
5.10 命令行参数
5.11 指向函数的指针
5.12 复杂声明
6 结构
6.1 结构的基本知识
6.2 结构与函数
6.3 结构数组
6.4 指向结构的指针
6.5 自引用结构
6.6 表查找
6.7 类型定义(typedef)
6.8 联合
6.9 位字段
7 输入与输出
7.1 标准输入/输出
7.2 格式化输出(printf 函数)
7.3 变长参数表
7.4 格式化输入(scanf 函数)
7.5 文件访问
7.6 错误处理(stderr 和 exit)
7.7 行输入和行输出
7.8 其它函数
8 UNIX 系统接口
8.1 文件描述符
8.2 低级 I/O — read 和 write
8.3 open、creat、close 和 unlink
8.4 随机访问 — lseek
8.5 实例 — fopen 和 getc 函数的实现
8.6 实例 — 目录列表
8.7 实例 — 存储分配程序
附录 A 参考手册
A.1 引言
A.2 词法规则
- A.2.1 记号
- A.2.2 注释
- A.2.3 标识符
- A.2.4 关键宇
- A.2.5 常量
- A.2.6 字符串字面值
A.3 语法符号
A.4 标识符的含义
- A.4.1 存储类
- A.4.2 基本类型
- A.4.3 派生类型
- A.4.4 类型限定符
A.5 对象和左值
A.6 转换
- A.6.1 整型提升
- A.6.2 整型转换
- A.6.3 整数和浮点数
- A.6.4 浮点类型
- A.6.5 算术类型转换
- A.6.6 指针和整数
- A.6.7 void
- A.6.8 指向 void 的指针
A.7 表达式
- A.7.1 指针生成
- A.7.2 初等表达式
- A.7.3 后缀表达式
- A.7.4 一元运算符
- A.7.5 强制类型转换
- A.7.6 乘法类运算符
- A.7.7 加法类运算符
- A.7.8 移位运算符
- A.7.9 关系运算符
- A.7.10 相等类运算符
- A.7.11 按位与运算符
- A.7.12 按位异或运算符
- A.7.13 按位或运算符
- A.7.14 逻辑与运算符
- A.7.15 逻辑或运算符
- A.7.16 条件运算符
- A.7.17 赋值表达式
- A.7.18 逗号运算符
- A.7.19 常量表达式
A.8 声明
- A.8.1 存储类说明符
- A.8.2 类型说明符
- A.8.3 结构和联合声明
- A.8.4 枚举
- A.8.5 声明符
- A.8.6 声明符的含义
- A.8.7 初始化
- A.8.8 类型名
- A.8.9 typedef
- A.8.10 类型等价
A.9 语句
- A.9.1 带标号语句
- A.9.2 表达式语句
- A.9.3 复合语句
- A.9.4 选择语句
- A.9.5 循环语句
- A.9.6 跳转语句
A.10 外部声明
- A.10.1 函数定义
- A.10.2 外部声明
A.11 作用域与连接
- A.11.1 词法作用域
- A.11.2 连接
A.12 预处理
- A.12.1 三字符序列
- A.12.2 行连接
- A.12.3 宏定义和扩展
- A.12.4 文件包含
- A.12.5 条件编译
- A.12.6 行控制
- A.12.7 错误信息生成
- A.12.8 pragma
- A.12.9 空指令
- A.12.10 预定义名字
A.13 语法
附录 B 标准库
B.1 输入与输出:<stdio.h>
- B.1.1 文件操作
- B.1.2 格式化输出
- B.1.3 格式化输入
- B.1.4 字符输入/输出函数
- B.1.5 直接输入/输出函数
- B.1.6 文件定位函数
- B.1.7 错误处理函数