第 1 章 概览
1.1 C 语言的起源
1.2 使用 C 语言的理由
1.2.1 设计特性
1.2.2 高效性
1.2.3 可移植性
1.2.4 强大的功能和灵活性
1.2.5 面向编程人员
1.2.6 缺点
1.3 C 语言的发展方向
1.4 计算机工作的基本原理
1.5 高级计算机语言和编译器
1.6 使用 C 语言的 7 个步骤
1.6.1 第 1 步:定义程序目标
1.6.2 第 2 步:设计程序
1.6.3 第 3 步 编写代码
1.6.4 第 4 步:编译
1.6.5 第 5 步:运行程序
1.6.6 第 6 步:测试和调试程序
1.6.7 第 7 步:维护和修改程序
1.6.8 总结
1.7 编程机制
1.7.1 目标代码文件、可执行文件和库
1.7.2 UNIX 系统
1.7.3 Linux 系统
1.7.4 集成开发环境(Windows 系统下)
1.7.5 IBM PC 的 DOS 编译器
1.7.6 Macintosh 上的 C
1.8 语言标准
1.8.1 第 1 个 ANSI/ISO C 标准
1.8.2 C99 标准
1.9 本书的组织结构
1.10 本书体例
1.10.1 字体
1.10.2 屏幕输出
1.11 总结
1.12 复习题
1.13 编程练习
第 2 章 C 语言概述
2.1 C 语言的一个简单实例
2.2 实例说明
2.2.1 第一遍 快速简介
2.2.2 第二遍 程序细节
2.3 一个简单程序的结构
2.4 使程序可读的技巧
2.5 更进一步
2.5.1 说明
2.5.2 多个声明
2.5.3 乘法
2.5.4 输出多个值
2.6 多个函数
2.7 调试
2.7.1 语法错误
2.7.2 语义错误
2.7.3 程序状态
2.8 关键字和保留标示符
2.9 关键概念
2.10 总结
2.11 复习题
2.12 编程练习
第 3 章 数据和 C
3.1 示例程序
3.2 变量与常量数据
3.3 数据:数据类型关键字
3.3.1 整数类型与浮点数类型
3.3.2 整数
3.3.3 浮点数
3.4 C 数据类型
3.4.1 int 类型
3.4.2 其他整数类型
3.4.3 使用字符:char 类型
3.4.4 _Bool 类型
3.4.5 可移植的类型:inttypes.h
3.4.6 float、double 和 long double 类型
3.4.7 复数和虚数类型
3.4.8 其他类型
3.4.9 类型大小
3.5 使用数据类型
3.6 参数和易犯的错误
3.7 另一个例子:转义序列
3.7.1 过程分析
3.7.2 刷新输出
3.8 关键概念
3.9 总结
3.10 复习题
3.11 编程练习
第 4 章 字符串和格式化输入/输出
4.1 前导程序
4.2 字符串简介
4.2.1 char 数组类型和空字符
4.2.2 使用字符串
4.2.3 strlen() 函数
4.3 常量和 C 预处理器
4.3.1 const 修饰符
4.3.2 系统定义的明显常量
4.4 研究和利用 printf() 和 scanf()
4.4.1 printf() 函数
4.4.2 使用 printf()
4.4.3 printf() 的转换说明修饰符
4.4.4 转换说明的意义
4.4.5 使用 scanf()
4.4.6 printf() 和 scanf() 的 * 修饰符
4.4.7 printf 的用法提示
4.5 关键概念
4.6 总结
4.7 复习题
4.8 编程练习
第 5 章 运算符、表达式和语句
5.1 循环简介
5.2 基本运算符
5.2.1 赋值运算符:=
5.2.2 加法运算符:+
5.2.3 减法运算符:-
5.2.4 符号运算符:- 和 +
5.2.5 乘法运算符:*
5.2.6 除法运算符:/
5.2.7 运算符的优先级
5.2.8 优先级和求值顺序
5.3 其他运算符
5.3.1 sizeof 运算符和 size_t 类型
5.3.2 取模运算符:%
5.3.3 增量和减量运算符:++ 和 –
5.3.4 减量:–
5.3.5 优先级
5.3.6 不要太聪明
5.4 表达式和语句
5.4.1 表达式
5.4.2 语句
5.4.3 符合语句(代码块)
5.5 类型转换
5.6 带有参数的函数
5.7 一个示例程序
5.8 关键概念
5.9 总结
5.10 复习题
5.11 编程练习
第 6 章 C 控制语句:循环
6.1 再探 while 循环
6.1.1 程序注解
6.1.2 C 风格的读循环
6.2 while 语句
6.2.1 终止 while 循环
6.2.2 循环何时终止
6.2.3 while:入口条件循环
6.2.4 语法要点
6.3 比较大小:使用关系运算符和表达式
6.3.1 什么是真
6.3.2 还有什么是真
6.3.3 真值的问题
6.3.4 新的 _Bool 类型
6.3.5 关系运算符的优先级
6.4 不确定循环与计数循环
6.5 for 循环
6.6 更多赋值运算符:+=、-=、*=、/= 和 %=
6.7 逗号运算符
6.8 退出条件循环:do while
6.9 选择哪种循环
6.10 嵌套循环
6.10.1 程序讨论
6.10.2 嵌套变化
6.11 数组
6.12 使用函数返回值的循环例子
6.12.1 程序讨论
6.12.2 使用具有返回值的函数
6.13 关键概念
6.14 总结
6.15 复习题
6.16 编程练习
第 7 章 C 控制语句:分支和跳转
7.1 if 语句
7.2 在 if 语句中添加 else 关键字
7.2.1 另一个例子:介绍 getchar() 和 putchar()
7.2.2 ctype.h 系列字符函数
7.2.3 多重选择 else if
7.2.4 把 else 与 if 配对
7.2.5 多层嵌套的 if
7.3 获得逻辑性
7.3.1 改变拼写法:iso646.h 头文件
7.3.2 优先级
7.3.3 求值的顺序
7.3.4 范围
7.4 一个统计字数的程序
7.5 条件运算符 ?:
7.6 循环辅助手段:continue 和 break
7.6.1 continue 语句
7.6.2 break 语句
7.7 多重选择:switch 和 break
7.7.1 使用 switch 语句
7.7.2 只读取一行的首字符
7.7.3 多重标签
7.7.4 switch 和 if else
7.8 goto 语句
7.9 关键概念
7.10 总结
7.11 复习题
7.12 编程练习
第 8 章 字符输入/输出和输入确认
8.1 单字符 I/O:getchar() 和 putchar()
8.2 缓冲区
8.3 终止键盘输入
8.3.1 文件、流和键盘输入
8.3.2 文件结尾
8.4 重定向和文件
8.5 创建一个更友好的用户界面
8.5.1 使用缓冲输入
8.5.2 混合输入数字和字符
8.6 输入确认
8.6.1 分析程序
8.6.2 输入流和数值
8.7 菜单浏览
8.7.1 任务
8.7.2 使执行更顺利
8.7.3 混合字符和数值输入
8.8 关键概念
8.9 总结
8.10 复习题
8.11 编程练习
第 9 章 函数
9.1 函数概述
9.1.1 编写和使用一个简单的函数
9.1.2 程序分析
9.1.3 函数参数
9.1.4 定义带有参数的函数:形式参量
9.1.5 带参数函数的原型声明
9.1.6 调用带有参数的函数:实际参数
9.1.7 黑盒子观点
9.1.8 使用 return 从函数中返回一个值
9.1.9 函数类型
9.2 ANSI C 的函数原型
9.2.1 产生的问题
9.2.2 ANSI 的解决方案
9.2.3 无参数和不确定参数
9.2.4 函数原型的优点
9.3 递归
9.3.1 递归的使用
9.3.2 递归的基本原理
9.3.3 尾递归
9.3.4 递归和反向计算
9.3.5 递归的优缺点
9.4 多源代码文件程序的编译
9.4.1 UNIX
9.4.2 Linux
9.4.3 DOS 命令行编译器
9.4.4 Windows 和 Macintosh 编译器
9.4.5 头文件的使用
9.5 地址运算符:&
9.6 改变调用函数中的变量
9.7 指针简介
9.7.1 间接运算符:*
9.7.2 指针声明
9.7.3 使用指针在函数间通信
9.8 关键概念
9.9 总结
9.10 复习题
9.11 编程练习
第 10 章 数组和指针
10.1 数组
10.1.1 初始化
10.1.2 指定初始化项目(C99)
10.1.3 为数组赋值
10.1.4 数组边界
10.1.5 指定数组大小
10.2 多维数组
10.2.1 初始化二维数组
10.2.2 更多维的数组
10.3 指针和数组
10.4 函数、数组和指针
10.4.1 使用指针参数
10.4.2 评论:指针和数组
10.5 指针操作
10.6 保护数组内容
10.6.1 对形式参量使用 const
10.6.2 有关 const 的其他内容
10.7 指针和多维数组
10.7.1 指向多维数组的指针
10.7.2 指针兼容性
10.7.3 函数和多维数组
10.8 变长数组(VLA)
10.9 复合文字
10.10 关键概念
10.11 总结
10.12 复习题
10.13 编程练习
第 11 章 字符串和字符串函数
11.1 字符串表示和字符串 I/O
11.1.1 在程序中定义字符串
11.1.2 指针和字符串
11.2 字符串输入
11.2.1 创建存储空间
11.2.2 gets() 函数
11.2.3 fgets() 函数
11.2.4 scanf() 函数
11.3 字符串输出
11.3.1 puts() 函数
11.3.2 fputs() 函数
11.3.3 printf() 函数
11.4 自定义字符串输入/输出函数
11.5 字符串函数
11.5.1 strlen() 函数
11.5.2 strcat() 函数
11.5.3 strncat() 函数
11.5.4 strcmp() 函数
11.5.5 strncmp() 函数
11.5.6 strcpy() 和 strncpy() 函数
- 书名《C Primer Plus(第五版)》
- 书号 ISBN 7-115-13022-1/TP 4411
- Stephen Prata 著,云巅工作室 译
- 清华大学出版社
- 2005 年 2 月第 1 版第 1 次印刷