图书目录

第1章走近C/C++1

1.1C语言和面向过程的程序设计1

1.1.1简介 1

1.1.2C 源程序的组成 2

1.1.3注释 2

1.1.4C程序例子3

1.1.5面向过程的程序设计特点 4

1.1.6结构化程序的三种基本结构 5

1.2C++语言和面向对象的程序设计6

1.2.1C++的起源 6

1.2.2C++的兼容性 7

1.2.3面向对象的程序设计语言——C++的特点7

1.2.4面向对象的程序设计特点10

1.3C/C++程序的开发过程11

第2章变量、常量和输入输出14

2.1基本字符集14

2.2保留字15

2.3标识符16

2.4基本数据类型16

2.5常量和变量18

2.5.1常量 18

 2.5.2变量19

2.6整型数据20

2.6.1整型常量的表示方法20

2.6.2整型常量的类型20

2.6.3整型变量的类型21

2.6.4溢出21

2.7实型数据21

2.7.1实型常量的表示方法 21

2.7.2实型数据在内存中的存放形式22

2.7.3实型数据的截尾误差 22

2.7.4实型常量的类型及其转换23

2.8字符型数据24

2.8.1字符常量 24

2.8.2ASCII 码——字符变量在内存中的存放形式25

2.8.3字符变量与单字节整型变量的关系 25

2.8.4字符串常量26

2.8.5字符数据的输出26

2.8.6字符数据的输入27

2.9格式化输出函数printf28

2.9.1一般格式28

2.9.2格式字符29

2.10格式化输入函数scanf30

2.10.1一般格式30

 2.10.2格式字符32

2.11C++的I/O流简介32

2.11.1输入操作 33

2.11.2输出操作33

习题234

第3章表达式和运算符38

3.1语句和语句块38

3.2表达式39

3.3简单赋值和算术运算41

3.4溢出42

3.5数据类型转换43

3.5.1隐式数据类型转换43

3.5.2显式类型转换44

3.6自增1和自减145

3.7关系运算符48

3.8逻辑运算符48

3.9位操作运算符 50

3.10条件运算符51

3.11复合赋值运算符52

3.12逗号表达式53

习题354

第4章过程化语句58

4.1表达式语句58

4.2选择语句59

4.2.1条件语句59

4.2.2开关语句63

4.3for 循环语句65

4.3.1for 语句的一般格式 65

4.3.2continue 语句及其与break 语句的区别68

4.3.3for 语句的嵌套与穷举法 69

4.3.4迭代法70

4.4do…while 语句71

4.5while 语句73

4.6循环语句综述 74

4.6.1循环结构的组成 74

4.6.2for 语句的变异形式 74

4.6.3循环语句的嵌套 75

4.6.4break语句 77

4.6.5goto 语句78

习题478

第5章函数80

5.1函数简介80

5.2函数定义81

5.3return语句83

5.4函数原型85

5.5局部变量与全局变量85

5.5.1程序的内存区域86

5.5.2非静态局部变量(自动变量)86

5.5.3静态局部变量87

5.5.4register (寄存器)变量 88

5.5.5全局变量88

5.6函数调用机制89

5.6.1栈 89

5.6.2函数的调用过程89

5.7内联函数91

5.7.1运行效率与代码重用的矛盾91

5.7.2内联函数91

5.7.3注意事项 92

5.8重载函数92

5.8.1引进重载函数的原因 92

5.8.2重载函数应满足的条件 92

5.8.3匹配重载函数的顺序93

5.9具有默认参数的函数94

5.10递归函数96

5.10.1概述 96

5.10.2直接递归函数 97

5.10.3递归算法和迭代算法综述98

习题599

第6章程序结构101

6.1编译与连接101

6.1.1单文件的编译与连接 102

6.1.2多文件的编译与连接103

6.2变量的作用域与可见性105

6.2.1作用域 105

6.2.2可见性 106

6.2.3单个源程序文件中的全局变量 106

6.2.4局部变量和全局变量的应用107

6.3变量的存储类别和生命期109

6.3.1动态存储方式与静态存储方式 109

6.3.2变量的生命期 109

6.3.3单个源文件中的变量小结110

6.3.4用 extern 声明外部变量110

6.3.5外部变量小结112

6.4外部函数和内部函数114

6.5编译指令115

6.5.1嵌入(包含)指令 116

6.5.2宏定义与宏取消指令 116

6.5.3条件编译指令118

习题6119

第7章数组121

7.1数组的定义和默认值121

7.1.1数组的定义121

7.1.2数组的默认值122

7.2通过下标访问数组122

7.3作用域122

7.4一维非字符数组的初始化123

7.5字符数组及其初始化123

7.6二维数组125

7.6.1二维数组定义 125

7.6.2二维数组元素在内存中的排列——降维处理 125

7.6.3二维数组的初始化126

7.7数组作为函数的形参126

7.8数组应用举例128

7.8.1矩阵转置——二维数组与一维数组的关系 128

7.8.2拉格朗日插值法130

7.8.3程序设计的探索法——设计魔方图132

习题7133

第8章指针和引用135

8.1地址、指针和指针变量的概念135

8.2指针的定义和初始化136

8.3指针的类型137

8.4指针的作用域137

8.5指针变量运算符137

8.6指针使用须知138

8.7指针运算140

8.8数组与指针141

8.8.1数组名是一个常量 141

8.8.2一维数组与指针 141

8.8.3二维数组与指针143

8.9字符数组、字符串与字符指针144

8.9.1字符数组和字符串144

8.9.2字符串常量和字符数组145

8.9.3字符指针 145

8.9.4字符串赋值146

8.10字符串数组与指针数组147

8.10.1重要概念 147

8.10.2应用举例149

8.11字符和字符串处理函数149

8.11.1字符串长度 150

8.11.2字符串复制 150

8.11.3字符串比较 151

8.11.4字符串串接152

8.11.5与字符和字符串有关的库函数152

8.12NULL指针155

8.13void指针155

8.14堆内存分配156

8.14.1函数malloc()和free()156

8.14.2运算符new和delete 157

8.14.3采样数据处理159

8.15常量指针(const对象)160

8.16指针常量(const指针)162

8.17指向常量的指针常量163

8.18函数指针164

8.18.1函数指针概念164

8.18.2用函数指针变量调用函数 164

8.18.3函数指针数组 166

8.18.4用指向函数的指针作函数参数167

8.19引用168

8.19.1引用的概念168

8.19.2引用与被引用变量的关系 169

8.19.3注意事项169

习题8170

第9章再论函数173

9.1参数传递的三种方式173

9.1.1函数的一般形式173

9.1.2传值方式174

9.1.3传址方式174

9.1.4传引用方式175

9.1.5例子175

9.1.6小结179

9.2函数的返回值181

9.2.1函数返回地址181

9.2.2函数返回引用182

9.2.3函数不能返回临时变量的地址或引用184

9.3使用常量指针和常引用传递参数185

习题9187

第10章枚举类型、结构体和共同体189

10.1枚举类型189

10.2结构体193

10.2.1结构体的声明和结构体变量的定义 193

10.2.2访问结构体变量的成员 194

10.2.3结构体数组195

10.3结构体用作函数参数和返回值196

10.4链表196

10.4.1链表的概念 196

10.4.2结点的构成与访问 197

10.4.3链表的两种构造方法 198

10.4.4简单链表操作 199

10.5共同体200

10.5.1共同体的特点 200

10.5.2共同体和共同体变量的定义格式200

10.5.3共同体变量的内存空间 201

10.5.4共同体变量成员的访问方式和特点201

10.6结构体、共同体和枚举类型的综合应用203

习题10203

第11章类和对象205

11.1类的声明与定义205

11.1.1类的组成 205

11.1.2内联函数207

11.2对象的定义208

11.3访问类的成员209

11.4认识构造函数211

11.4.1构造函数的功能与特点 211

11.4.2构造函数的调用次序 212

11.4.3构造函数的初始化列表213

11.5析构函数214

11.6对象在内存中的布局和 this 指针215

11.7再论构造函数217

11.7.1默认构造函数217

11.7.2复制构造函数 218

11.7.3具有默认参数的构造函数 219

11.7.4重载构造函数220

11.8堆对象221

11.8.1创建和删除单个堆对象的方法 221

11.8.2创建和删除堆对象数组的方法222

11.9静态数据成员和静态成员函数224

11.9.1静态数据成员的特点及定义方法 224

11.9.2访问静态数据成员的方法225

11.9.3链表的创建和简单的操作 225

11.9.4静态成员函数229

11.10无名对象与临时对象230

11.11常量对象和常量成员函数231

11.12类成员232

11.13友元233

11.13.1为什么需要友元 233

11.13.2友元的定义方法 233

11.13.3友元函数的特点234

习题11239

第12章继承241

12.1继承的概念241

12.2公有继承、保护继承和私有继承242

12.2.1类成员访问权限242

12.2.2三种继承模式242

12.3构造函数和析构函数的调用245

12.3.1构造函数的调用次序245

12.3.2析构函数的调用次序245

12.3.3派生类的初始化方法——初始化列表的用法247

12.4重载和操纵251

12.5类层次中的对象数据结构和指针应用252

12.6多继承和虚基类253

12.6.1没有公共基类的多继承——简单的多继承253

12.6.2具有公共基类的多继承254

12.6.3虚基类255

习题12260

第13章多态性和虚函数262

13.1多态性概述262

13.2联编263

13.3静态多态性263

13.4虚函数和动态多态性265

13.5对虚函数的限制270

13.6虚析构函数271

13.7成员函数调用虚函数271

13.8在构造函数中调用虚函数272

13.9纯虚函数和抽象类272

习题13277

第14章运算符重载与类型转换280

14.1运算符重载基础280

14.1.1例子 280

14.1.2注意事项282

14.2运算符重载函数284

14.2.1类运算符 284

14.2.2友元运算符286

14.3赋值运算符和四则运算符的重载 287

14.4自增1和自减1运算符重载289

14.5下标运算符的重载289

14.6关系运算符的重载291

14.7算术赋值运算符的重载 292

14.8输出与输入运算符的重载292

14.8.1重载输出运算符 292

14.8.2重载输入运算符293

14.9类型转换294

14.9.1基本类型转换为自定义类型 295

14.9.2自定义类型转换为基本类型 295

14.9.3自定义类型之间的转换295

习题14296

第15章模板298

15.1模板的概念298

15.2函数模板与模板函数299

15.2.1函数模板的定义格式 299

15.2.2模板函数——函数模板的应用300

15.3类模板303

15.3.1类模板的定义格式 303

15.3.2模板类——类模板的应用304

习题15306

第16章I/O流307

16.1C的标准I/O函数的缺陷307

16.2I/O流的概念308

16.3I/O流类库结构309

16.4标准I/O流310

16.4.1标准 I/O流的类层次 310

16.4.2预定义流对象 310

16.4.3预定义的插入类型 311

16.4.4预定义的提取类型312

16.5格式化I/O流313

16.5.1使用控制格式符实现I/O格式化 313

16.5.2使用控制输出格式的成员函数315

16.6用于无格式I/O的ios类成员函数317

16.7文件与文件流概述319

16.8文件流的类层次320

16.9文件的打开和关闭操作321

16.10顺序文件的读写操作323

16.11二进制文件的读写操作324

16.12随机访问数据文件324

16.13字符串流326

习题16327

附录AASCII码表简介330

参考文献333