目录
第一部分 学习C
第一章 C程序解析
1.1一个典型的C程序
1.2注释
1.3语句
1.4关键字和名字
1.5预处理指令
1.6函数
1.7调用函数
1.8声明及初始化变量
1.9外部变量与局部变量
1.10函数原型
1.11关于printf
第二章 函数
2.1函数和结构化程序设计
2.2main函数
2.3函数的位置与可见性
2.4函数定义和原型
2.5调用一个函数
2.6传递变元
2.7变元与参数
2.8给参数赋值
2.9值传递
2.10从函数中返回值
2.11使用返回值
2.12声明函数的返回类型
2.13函数原型
2.13.1原型化无参数的函数
2.13.2原型化有不定参数的函数
2.14旧式的函数声明与定义
第三章 流程控制
3.1循环:while,do和for
3.1.1while语句
3.1.2do语句
3.1.3for循环
3.2判断语句:if,else,switch,break,continue和got0
3.2.1if语句
3.2.2else子句
3.2.3switch语句
3.2.4break语句
3.2.5continue语句
3.2.6goto语句
第四章 数据类型
4.1基本数据类型
4.1.1说明基本类型
4.1.2说明变量
4.1.3说明常量
4.2聚集数据类型
4.2.1数组
4.2.2结构
4.2.3联合
第五章 高级数据类型
5.1可见性
5.1.1局部变量
5.1.2外部变量
5.1.3多个源文件中的可见性
5.1.4函数的可见性
5.2生命期
5.3转换数据类型
5.3.1数据类型的级别
5.3.2升级与降级
5.3.3自动类型转换
5.3.4强制类型转换
5.4寄存器变量
5.5用typedef对现存类型重命名
5.6枚举类型
第六章 操作符
6.1C操作符介绍
6.1.1算术操作符
6.1.2关系操作符
6.1.3赋值操作符
6.2C语言独特的操作符
6.2.1加1和减1符
6.2.2位操作符
6.2.3逻辑操作符
6.2.4地址操作符
6.2.5条件操作符
6.2.6sizeof操作符
6.2.7逗号操作符
6.2.8基数操作符
6.3操作符优先级
第七章 预处理指令
7.1#include指令
7.2#define和#undef指令
7.2.1简单文本替换
7.2.2与函数相似的宏
7.2.3#undef指令
7.3条件指令
7.4编译指令
第八章 指针
8.1使用指针
8.2指向简单变量的指针
8.2.1声明指针变量
8.2.2指针存储方式
8.2.3初始化指针变量
8.2.4使用指针变量
8.2.5指针基础知识小结
8.3数组指针
8.3.1数组及指针运算
8.3.2指针比较
8.3.3重温PARRAY.C
8.4指针和串
8.5传递指针至函数
8.6指针数组
8.7本章回顾
第九章 高级指针
9.1指向指针的指针
9.2数组与指针的等价性
9.3获取命令行参数
9.4空指针
9.5指向结构的指针
9.6指向函数的指针
9.7有关指针的几点说明
第十章 程序设计中的错误
10.1操作问题
10.1.1赋值操作符和相等操作符的混淆
10.1.2混淆操作符优先级
10.1.3混淆结构元素操作符
10.2数组问题
10.2.1数组下标错
10.2.2在处理数组时忽略了数组下标
10.2.3超出数组边界
10.3字符串问题
10.3.1混淆字符常数与字符串
10.3.2忘记了字符串结尾的空字符
10.3.3忘记为字符串分配内存
10.4指针问题
10.4.1用错误的地址操作符来初始化指针
10.4.2用错误的类型声明了一个指针
10.4.3使用悬挂指针
10.5库函数问题
10.5.1没有检查库函数的返回值
10.5.2与库函数重名
10.5.3忘记包含声明库函数的包含文件
10.5.4调用scanf时忽略了地址操作符
10.6宏问题
10.6.1忽略了宏参数的括号
10.6.2在宏参数中使用递增和递减操作符
10.7混合性问题
10.7.1不匹配的if和else语句
10.7.2放错了分号的位置
10.7.3在DOS路径中忽略了双反斜杠
10.7.4忽略了开关的语句中的break语句
10.7.5混淆有符号和无符号值
第二部分 使用C
第十一章 输入和输出
11.1输入输出流
11.2屏幕和键盘输入/输出
11.2.1操作和打印字符串
11.2.2打印数值
11.2.3使用scanf进行键盘输入
11.3标准磁盘输入/输出
11.3.1创建文件和向文本文件写
11.3.2打开文件以便二进制方式读
11.3.3二进制和文本文件
11.3.4数值型变量的文本格式
11.3.5使用二进制格式
11.4低级输入和输出
第十二章 动态存储分配
12.1为什么要分配
12.2存储分配基础
12.2.1分配存储块的准备工作
12.2.2指定分配块的大小
12.2.3图示说明
12.2.4对malloc返回地址赋值
12.2.5检测malloc函数返回值
12.2.6访问—已分配存块
12.2.7为不同的数据类型分配存储块
12.2.8采用free函数释放存储块
12.3特定的存储分配函数
12.3.1calloc函数
12.3.2realloc函数
12.4避免麻烦
第十三章 图形
13.1图形方式
13.1.1检测当前视频模式
13.1.2设置视频方式
13.1.3编制图形程序
13.1.4使用彩色图形方式
13.1.5使用彩色视频文本方式
13.2文本坐标
13.3图形坐标
13.3.1物理屏幕
13.3.2视口坐标
13.3.3窗口中的实际坐标
第十四章 报告用图形
14.1术语
14.2报告用图形程序结构
14.3五个图形程序例子
14.4色板
14.4.1颜色库
14.4.2格式库
14.4.3模式库
14.4.4字符库
14.5通用报告用图形
14.5.1图形环境
14.5.2titletype
14.5.3axistype
14.5.4窗口类型
14.5.5legendtype
14.5.6chartenv
14.6报告用图形函数概述
第十五章 字体
15.1Micr0softC字体
15.2使用MicrosoftC字体库
15.2.1注册字体
15.2.2设置当前字体
15.2.3显示文本
15.3例题程序
15.4一些提示
第十六章 内部汇编
16.1内部汇编的优点
16.2_asm关键字
16.3在_asm块中使用汇编语言
16.3.1指令集
16.3.2表达式
16.3.3Data伪指令及操作符
16.3.4EVEN和ALIGN伪指令
16.3.5宏
16.3.6段访问
16.3.7类型和变量大小
16.3.8注释
16.3.9用CodeView调试器来调试
16.4在asm块中使用C
16.4.1使用操作符
16.4.2使用C符号
16.4.3访问C数据
16.4.4编写函数
16.5使用和保存寄存器
16.6跳转到标号
16.7调用C函数
16.8定义_asm块为C宏
16.9优化
第三部分 附 录
附录A C语言指南
A.1一般语法
A.1.1用户定义名
A.1.2关键字
A.1.3函数
A.2流程控制
A.2.1break语句
A.2.2continue语句
A.2.3do语句
A.2.4for语句
A.2.5goto语句
A.2.6if语句
A.2.7return语句
A.2.8switch语句
A.2.9while语句
A.3数据类型
A.3.1基本数据类型
A.3.2聚合数据类型
A.3.3高级数据类型
A.4操作符
A.5预处理指令
A.6指针
附录B C库函数指南
B.1C运行库概况
B.2缓冲区处理例程
B.3字符分类与转换例程
B.4数据转换例程
B.5错误信息的例程
B.6图形1:低级图形例程
B.6.1配置方式与环境
B.6.2设置坐标
B.6.3设置色板
B.6.4设置属性
B.6.5输出图像
B.6.6输出文本
B.6.7传递图像
B.7图形2:报告用图形例程
B.8图形3:字体显示例程
B.9输入、输出例程
B.9.1流式例程
B.9.2低级例程
B.9.3控制台与端口I/O例程
B.10数学例程
B.11内存分配例程
B.12进程控制例程
B.13搜索与排序例程
B.14字符串处理例程
B.15时间例程