第1章 绪论 1
1.1 计算机程序设计概述 1
1.1.1 程序设计语言的发展 1
1.1.2 程序设计的发展历程 2
1.1.3 结构化程序设计概述 3
1.1.4 面向对象程序设计概述 5
1.2 C/C++概述 6
1.2.1 C/C++的发展过程 6
1.2.2 C/C++语言的特点 7
1.3.1 C/C++程序实例 8
1.3 简单的C/C++程序 8
1.3.2 C/C++程序的书写规范 11
1.4 程序的调试与运行 11
1.4.1 编辑 11
1.4.2 编译、链接 12
1.4.3 运行 13
1.4.4 程序调试 13
1.5 C/C++程序开发环境简介 13
1.5.1 Turbo C集成环境简介 13
1.5.2 Visual C++集成环境简介 18
2.1.2 标识符 25
2.1.1 字符集 25
2.1 词法符号 25
第2章 数据类型及表达式 25
2.1.3 关键字 26
2.2 基本数据类型 26
2.3 常量与变量 28
2.3.1 常量 28
2.3.2 变量 32
2.4 运算符与表达式 33
2.4.1 算术运算 35
2.4.2 关系运算 38
2.4.3 逻辑运算 40
2.4.4 赋值运算 41
2.4.5 逗号运算 43
2.4.6 sizeof运算符 44
2.5 类型转换 44
2.5.1 自动类型转换 45
2.5.2 强制类型转换 45
习题 47
第3章 结构化程序设计 49
3.1 C/C++基本语句 49
3.2 数据的输入与输出 50
3.2.1 C语言中常用输入输出函数 51
3.2.2 C++语言中常用的流输入输出 56
3.3 顺序结构程序设计 61
3.4 选择结构程序设计 63
3.4.1 用if语句实现选择结构 63
3.4.2 if语句的嵌套 69
3.4.3 条件表达式 70
3.4.4 switch语句 72
3.5 循环结构的实现 78
3.5.1 while语句 78
3.5.2 do-while语句 80
3.5.3 for语句 82
3.5.4 循环的嵌套 85
3.5.5 break语句 88
3.5.6 continue语句 91
3.5.7 goto语句 92
3.5.8 几种循环的比较 93
3.6 程序设计举例 94
习题 96
第4章 数组与指针 99
4.1 数组 99
4.1.1 一维数组 99
4.1.2 二维数组 106
4.1.3 字符数组 112
4.2 指针 122
4.2.1 指针的概念 123
4.2.2 指针变量的定义 124
4.2.3 指针变量的初始化 125
4.2.4 指针的运算 128
4.3 指针与数组 132
4.3.1 指向数组的指针 132
4.3.2 通过指针变量使用数组元素 133
4.3.3 指针与字符串 137
4.3.4 多级指针与指针数组 140
4.3.5 指针与二维数组 146
4.3.6 数组指针 151
4.4.2 引用的使用 153
4.4 引用 153
4.4.1 引用及其声明 153
4.5 动态内存分配 156
4.5.1 C语言的动态内存分配函数 156
4.5.2 C++语言的动态内存分配函数 157
习题 161
第5章 函数与预处理 164
5.1 函数的定义 164
5.1.1 函数概念的引入 164
5.1.2 函数的定义 166
5.1.3 空函数 168
5.1.4 return语句 169
5.1.5 函数声明 171
5.2 函数的调用 173
5.2.1 函数的调用 173
5.2.2 参数传递机制 174
5.3 指针与函数 178
5.3.1 指针作为函数参数 178
5.3.2 函数调用中数组的传递 182
5.3.3 函数指针 187
5.3.4 指针函数 190
5.4 函数的嵌套调用 192
5.5 函数的递归调用 196
5.6 内联函数和重载函数 199
5.6.1 内联函数 199
5.6.2 重载函数 201
5.7 默认参数的函数 204
5.7.1 默认参数的函数 204
5.7.2 使用默认参数的函数时注意问题 204
5.8 作用域与生命期 206
5.8.1 作用域 206
5.8.2 全局变量和局部变量 210
5.8.3 生命期 214
5.9.1 宏定义(Macro) 220
5.9 编译预处理 220
5.9.2 文件包含(#include) 225
5.9.3 条件编译 227
习题 237
第6章 结构体、联合体和枚举类型 240
6.1 结构体类型 240
6.1.1 结构体类型的定义 240
6.1.2 结构体类型变量的定义 241
6.1.3 结构体变量的初始化 243
6.1.4 结构体的成员的访问 244
6.1.5 结构体数组 246
6.1.6 结构体指针 250
6.1.7 用结构体指针处理链表 255
6.2 联合体 261
6.2.1 联合体的定义 261
6.2.2 访问联合体的成员 262
6.2.3 联合体类型的特点 262
6.3 枚举类型 265
6.3.1 枚举类型及枚举变量的定义 266
6.3.2 枚举元素的访问 266
6.4 用typedef定义类型 267
习题 268
7.1.1 文件的逻辑结构 272
7.1 文件概述 272
第7章 文件 272
7.1.2 文件的存取方式 273
7.2 C语言中的文件操作 273
7.2.1 文件的指针 273
7.2.2 文件的打开与关闭 274
7.2.3 文件的读写操作 275
7.2.4 文件检测函数 282
7.2.5 文件的定位 284
7.2.6 文件的顺序存取和随机存取 286
7.3 C++的I/O流库 291
7.3.1 流 291
7.3.2 磁盘文件 294
习题 301
第8章 面向对象程序设计基础 304
8.1 面向对象方法概述 304
8.1.1 面向对象的基本概念 304
8.1.2 面向对象程序设计概述 307
8.2 类与对象 310
8.2.1 类 310
8.2.2 对象 315
8.2.3 构造函数与析构函数 317
8.2.4 拷贝构造函数 324
8.3.1 对象数组 329
8.3 对象数组与对象指针 329
8.3.2 对象指针 332
8.4 对象与函数 334
8.4.1 对象做函数参数 334
8.4.2 对象指针作为函数参数 336
8.4.3 对象的引用做函数的参数 337
8.5 静态成员与友元 338
8.5.1 类的静态成员 338
8.5.2 友元 341
8.6 运算符重载 344
8.6.1 运算符重载的概念 344
8.6.2 运算符重载的规则 345
习题 348
第9章 继承与多态 351
9.1 继承与派生 351
9.1.1 派生类 351
9.1.2 派生类对基类成员的覆盖 359
9.1.3 派生类的构造函数和析构函数 362
9.2 多态与虚函数 365
9.2.1 多态性 365
9.2.2 虚函数 368
9.2.3 纯虚函数与抽象基类 371
习题 373