第1章 概述 1
1.1 Hello World 1
1.2 C语言的特点 2
1.3从例子看C语言 3
1.3.1变量和表达式 4
1.3.2语句和函数 6
1.3.3输入输出 7
1.3.4 main 8
1.3.5程序结构 8
1.3.6可读性 9
1.4编译程序工作流程 10
1.5一点建议 12
第2章 基本数据类型与表达式 13
2.1数据与类型 13
2.1.1为什么使用数据类型 13
2.1.2类型名与类型修饰符 14
2.2常量 15
2.2.1整型常量 15
2.2.2实型常量 16
2.2.3字符型常量 17
2.2.4字符串常量 17
2.2.5宏常量 18
2.3变量 19
2.3.1标识符命名 19
2.3.2变量的定义 20
2.3.3变量的初始化 21
2.3.4 const类型修饰符 21
2.3.5使用变量时的注意事项 21
2.4常用运算符与表达式 24
2.4.1运算符的优先级与结合性 24
2.4.2算术运算符及表达式 25
2.4.3赋值运算符及表达式 25
2.4.4自增、自减运算符 27
2.4.5表达式求值与类型转换 28
2.4.6其他常用运算符 31
2.5常用数学函数 34
第3章 程序控制结构 36
3.1语句 36
3.1.1什么是语句 36
3.1.2复合语句 36
3.1.3语句与控制结构 37
3.2控制结构中常用的三种表达式 38
3.2.1关系运算符与关系表达式 38
3.2.2逻辑运算符与逻辑表达式 40
3.2.3条件运算符与条件表达式 41
3.3条件语句 42
3.3.1 if-else语句 42
3.3.2 if-else if语句 46
3.3.3 switch语句 47
3.4循环语句 51
3.4.1 while循环语句 51
3.4.2 for循环语句 52
3.4.3 do-while循环语句 55
3.5跳转语句 56
3.5.1 return语句 56
3.5.2 break语句 57
3.5.3 continue语句 58
3.5.4 goto语句与标号 59
3.6控制结构常用的语句和表达式 60
3.6.1空语句 60
3.6.2逗号运算符与逗号表达式 61
3.7控制结构程序举例 61
3.7.1统计 61
3.7.2数学问题 64
3.7.3数列显示 67
第4章 函数与程序结构 70
4.1.函数和程序 70
4.1.1概述 70
4.1.2程序中的函数分解 71
4.1.3主函数 71
4.1.4标准库函数 72
4.1.5一个简单的例子:求任意两个数的最大值 72
4.2函数的定义和使用 74
4.2.1函数定义 74
4.2.2函数参数与返回值 75
4.2.3函数调用 77
4.3函数的嵌套调用与递归 80
4.3.1函数的嵌套调用 80
4.3.2递归 80
4.4变量的作用域与存储类型 84
4.4.1变量的作用域 85
4.4.2变量的存储类型 88
4.4.3小结 92
4.5内部函数与外部函数 92
4.5.1内部函数 92
4.5.2外部函数 93
4.5.3多文件程序 94
4.6预处理命令 95
4.6.1文件包含 95
4.6.2宏定义 96
4.6.3条件编译 98
4.7终止程序运行 100
第5章 数组 102
5.1数组的概念 102
5.2一维数组 102
5.2.1一维数组的定义 102
5.2.2一维数组元素的引用 103
5.2.3一维数组的初始化 106
5.2.4一维数组的存储 107
5.2.5一维数组程序举例 108
5.3字符数组 109
5.3.1字符数组的定义 109
5.3.2字符数组的初始化 110
5.3.3字符数组的引用 111
5.3.4字符串 112
5.3.5字符串的输入输出 113
5.3.6字符串处理函数 118
5.4二维数组的定义和引用 121
5.4.1二维数组的定义 121
5.4.2二维数组元素的引用 122
5.4.3二维数组的初始化 124
5.4.4二维数组程序举例 126
5.5数组应用 127
5.5.1排序 127
5.5.2查找 128
5.5.3单词统计 129
5.5.4矩阵运算 130
5.5.5数值阵列 133
第6章 指针 135
6.1内存地址与指针 135
6.1.1什么是内存地址 135
6.1.2内存变量的存取方法 136
6.1.3指针的概念 136
6.2指针变量的定义和使用 137
6.2.1指针变量的定义 137
6.2.2指针变量的使用 138
6.3指针作为函数的参数 141
6.4指针与数组 143
6.4.1指向数组元素的指针变量 143
6.4.2通过指针引用数组元素 144
6.4.3数组名作函数的参数 148
6.4.4指向二维数组的指针变量 150
6.4.5指向字符串的指针变量 156
6.4.6指针数组 162
6.5指针函数与函数指针 166
6.5.1指针函数 166
6.5.2函数指针 167
6.6指向指针数据的指针——多重指针 173
6.7复杂类型的定义与解读 175
6.8动态内存管理 177
6.8.1为什么需要对内存进行动态管理 177
6.8.2动态内存管理函数 178
6.8.3动态内存管理的使用要点 181
6.9几个特殊指针 181
6.9.1空指针 181
6.9.2野指针 182
6.9.3通用指针 183
6.10指针应用举例 184
6.10.1字符串操作 184
6.10.2三色球问题 187
6.10.3查表 188
6.10.4趣味数学问题 188
第7章 构造数据类型 191
7.1结构体 191
7.1.1结构体类型的声明 191
7.1.2结构体变量 192
7.1.3结构体数组 196
7.1.4结构体和函数 199
7.2链表及其操作 201
7.3联合体 205
7.3.1联合体变量的初始化和使用 206
7.3.2联合体变量的使用规则 207
7.4枚举类型 207
7.4.1枚举类型的声明 208
7.4.2枚举变量的定义和使用 208
7.4.3一个简单的例子 209
第8章 输入与输出及文件操作 211
8.1基本输入/输出操作的实现 211
8.1.1字符输入/输出 211
8.1.2字符串输入/输出 212
8.1.3格式输入/输出 212
8.2文件操作 218
8.2.1文件和文件系统 218
8.2.2基本文件操作 221
8.2.3高级文件操作 225
8.3 C标准库 232
第9章Linux/Windows编程简介 233
9.1 Windows程序设计 233
9.1.1窗口和消息处理 233
9.1.2 WinMain 235
9.1.3消息处理过程 237
9.1.4创建窗口 239
9.1.5定时器 239
9.1.6重绘窗口 240
9.2 Linux程序设计 243
9.2.1 shell简介 243
9.2.2 lzsh 251
第10章C++语言简介 265
10.1基本特性 265
10.1.1输入输出 265
10.1.2引用 267
10.1.3动态对象 268
10.1.4异常处理 268
10.2类 270
10.2.1类定义 270
10.2.2静态成员 272
10.2.3重载 273
10.3派生类和多态性 276
参考文献 283
附录A ANSI标准C的关键字 284
附录B ANSI标准定义的全部数据类型及其典型位宽和最小取值范围 285
附录C C运算符的优先级与结合性 286
附录D常用ASCII码字符表 287
附录E常用标准库函数 288