出版者的话中文版序译者序校译者简介第2版前言第1版前言引言第1章 导言11.1 入门11.2 变量与算术表达式31.3 for语句81.4 符号常量91.5 字符输入/输出91.5.1 文件复制101.5.2 字符计数111.5.3 行计数131.5.4 单词计数141.6 数组151.7 函数171.8 参数—传值调用191.9 字符数组201.10 外部变量与作用域22第2章 类型、运算符与表达式272.1 变量名272.2 数据类型及长度272.3 常量282.4 声明312.5 算术运算符322.6 关系运算符与逻辑运算符322.7 类型转换332.8 自增运算符与自减运算符372.9 位运算符382.10 赋值运算符与表达式402.11 条件表达式412.12 运算符优先级与求值次序42第3章 控制流453.1 语句与程序块453.2 if-else语句453.3 else-if语句463.4 switch语句483.5 while循环与for循环493.6 do-while循环523.7 break语句与continue语句533.8 goto语句与标号54第4章 函数与程序结构574.1 函数的基本知识574.2 返回非整型值的函数604.3 外部变量624.4 作用域规则684.5 头文件694.6 静态变量704.7 寄存器变量714.8 程序块结构724.9 初始化724.10 递归734.11 C预处理器754.11.1 文件包含754.11.2 宏替换764.11.3 条件包含78第5章 指针与数组795.1 指针与地址795.2 指针与函数参数815.3 指针与数组835.4 地��算术运算865.5 字符指针与函数895.6 指针数组以及指向指针的指针925.7 多维数组955.8 指针数组的初始化975.9 指针与多维数组975.10 命令行参数985.11 指向函数的指针1025.12 复杂声明105第6章 结构1116.1 结构的基本知识1116.2 结构与函数1136.3 结构数组1156.4 指向结构的指针1196.5 自引用结构1216.6 表查找1256.7 类型定义(typedef)1276.8 联合1286.9 位字段130第7章 输入与输出1337.1 标准输入/输出1337.2 格式化输出—printf函数1357.3 变长参数表1367.4 格式化输入—scanf函数1377.5 文件访问1407.6 错误处理—stderr和exit1437.7 行输入和行输出1447.8 其他函数1457.8.1 字符串操作函数1457.8.2 字符类别测试和转换函数1467.8.3 ungetc函数1467.8.4 命令执行函数1467.8.5 存储管理函数1477.8.6 数学函数1477.8.7 随机数发生器函数148第8章 UNIX系统接口1498.1 文件描述符1498.2 低级I/O—read和write1508.3 open、creat、close和unlink1518.4 随机访问—lseek1538.5 实例—fopen和getc函数的实现1548.6 实例—目录列表1578.7 实例—存储分配程序162附录A 参考手册167A.1 引言167A.2 词法规则167A.2.1 记号167A.2.2 注释167A.2.3 标识符167A.2.4 关键字168A.2.5 常量168A.2.6 字符串字面值170A.3 语法符号170A.4 标识符的含义170A.4.1 存储类171A.4.2 基本类型171A.4.3 派生类型172A.4.4 类型限定符172A.5 对象和左值172A.6 转换173A.6.1 整型提升173A.6.2 整型转换173A.6.3 整数和浮点数173A.6.4 浮点类型173A.6.5 算术类型转换173A.6.6 指针和整数174A.6.7 void17**.6.8 指向void的指针17**.7 表达式17**.7.1 指针生成176A.7.2 初等表达式176A.7.3 后缀表达式177A.7.4 一元运算符179A.7.5 强制类型转换180A.7.6 乘法类运算符180A.7.7 加法类运算符181A.7.8 移位运算符181A.7.9 关系运算符182A.7.10 相等类运算符182A.7.11 按位与运算符183A.7.12 按位异或运算符183A.7.13 按位或运算符183A.7.14 逻辑与运算符183A.7.15 逻辑或运算符183A.7.16 条件运算符184A.7.17 赋值表达式184A.7.18 逗号运算符18**.7.19 常量表达式18**.8 声明18**.8.1 存储类说明符186A.8.2 类型说明符187A.8.3 结构和联合声明188A.8.4 枚举191A.8.5 声明符191A.8.6 声明符的含义192A.8.7 初始化19**.8.8 类型名197A.8.9 typedef198A.8.10 类型等价199A.9 语句199A.9.1 带标号语句199A.9.2 表达式语句199A.9.3 复合语句200A.9.4 选择语句200A.9.5 循环语句201A.9.6 跳转语句201A.10 外部声明202A.10.1 函数定义202A.10.2 外部声明204A.11 作用域与连接204A.11.1 词法作用域20**.11.2 连接20**.12 预处理20**.12.1 三字符序列206A.12.2 行连接206A.12.3 宏定义和扩展206A.12.4 文件包含208A.12.5 条件编译209A.12.6 行控制210A.12.7 错误信息生成210A.12.8 pragma210A.12.9 空指令210A.12.10 预定义名字211A.13 语法211附录B 标准库219B.1 输入与输出:219B.1.1 文件操作220B.1.2 格式化输出221B.1.3 格式化输入223B.1.4 字符输入/输出函数224B.1.5 直接输入/输出函数225B.1.6 文件定位函数225B.1.7 错误处理函数226B.2 字符类别测试:226B.3 字符串函数:227B.4 数学函数:228B.5 实用函数:229B.6 诊断:232B.7 可变参数表:232B.8 非局部跳转:232B.9 信号:233B.10 日期与时间函数:234B.11 与具体实现相关的: 和 236附录C 变更小结237索引241