1 C程序设计语言概述 1
1.1 程序设计语言概述 1
1.2 C语言发展历史 2
1.3 C源程序的结构特点 3
1.4 C开发环境的基本知识 9
习题 14
2 基本数据类型、运算符、表达式 17
2.1 C语言字符集 17
2.2 C语言词汇 17
2.3 数据类型 19
2.4 变量 22
2.5 常量 24
2.6 运算符 29
2.7 基本数据类型混合运算和类型转换 43
习题 45
3 控制流 49
3.1 语句 49
3.2 常用输入/输出函数 51
3.3 if-else语句 58
3.4 应用举例 65
3.5 Switch语句 66
3.6 循环语句 69
3.7 break、continue语句 77
习题 80
4 函数 85
4.1 引言 85
4.2 函数原形 86
4.3 函数定义 88
4.4 函数调用 89
4.5 作用域规则 95
4.6 存储类别 99
4.7 递归 108
4.8 编译预处理 113
4.9 程序模块化 118
习题 120
5 数组 123
5.1 一维数组的定义与引用 123
5.2 二维数组的定义与引用 130
5.3 字符数组 138
习题 154
6 指针 155
6.1 指针、地址的概念 155
6.2 指针变量的定义 156
6.3 指针变量的引用 157
6.4 引用指针变量所指的变量 158
6.5 指针的运算 161
6.6 指针与函数参数 164
6.7 指针与数组 167
6.8 指针与字符串 176
6.9 指针数组 181
6.10 指向函数的指针 186
习题 191
7 结构体与动态数据类型 195
7.1 结构体的概念与定义 195
7.2 结构体与函数 206
7.3 自引用结构体 209
7.4 联合体 220
7.5 位运算符 225
习题 231
8 文件输入、输出 235
8.1 流与文件 235
8.2 文件系统基础 235
8.3 fread与fwrite 244
8.4 fseek与随机存取I/O 245
8.5 fprintf与fscanf 248
8.6 文件程序设计实例 250
习题 251
9 C++对C的非面向对象扩充 255
9.1 注释 255
9.2 变量的定义与声明 256
9.3 C++的输入/输出流 257
9.4 C++中建立新数据类型 259
9.5 内联函数 259
9.6 Const限定符 261
9.7 动态存储分配:new和delete运算符 264
9.8 默认参数 266
9.9 单目作用域运算符 266
9.10 函数重载 267
9.11 函数模板 271
9.12 引用 272
9.13 强制类型转换 275
9.14 Booleans 276
习题 276
10 对象、类 279
10.1 引言 279
10.2 类的定义 282
10.3 常类型(const)成员 299
10.4 子对象 303
10.5 引用对象:引用成员初始化 305
10.6 this指针 306
10.7 静态成员(static) 309
10.8 友元(friend) 314
10.9 指向数据成员和成员函数的指针 321
10.10 程序的模块化 322
习题 326
11 继承与派生 330
11.1 引言 330
11.2 单继承 332
11.3 多重继承 341
11.4 虚基类 349
习题 352
12 运算符重载 356
12.1 引子 356
12.2 定义 360
12.3 二元运算符重载 361
12.4 单目运算符重载 371
12.5 一些比较特殊的运算符 373
12.6 类型之间的转换 379
习题 382
13 多态性 386
13.1 对象指针 386
13.2 静态联编与动态联编 389
13.3 多态性与虚函数 391
13.4 动态联编 392
13.5 虚析构函数 394
13.6 纯虚函数和抽象类 396
13.7 类模板 404
习题 409
14 C++高级主题 412
14.1 类型转换 412
14.2 名字空间 419
14.3 运行时类型信息 427
14.4 异常处理 432
习题 440
15 面向对象的输入/输出 441
15.1 流库基本结构 442
15.2 类ios-base 443
15.3 类ios 443
15.4 输出 454
15.5 输入 461
习题 466
参考文献 470