图书介绍

C/C++学习指南 语法篇2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

C/C++学习指南 语法篇
  • 邵发编著 著
  • 出版社: 北京:清华大学出版社
  • ISBN:9787302419891
  • 出版时间:2016
  • 标注页数:377页
  • 文件大小:43MB
  • 文件页数:397页
  • 主题词:C语言-程序设计-指南

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

C/C++学习指南 语法篇PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 开始学习C/C++1

1.1 开发平台1

1.2 第一个程序1

1.2.1 代码解析2

1.2.2 在Windows XP环境下的问题2

1.2.3 常见的问题2

1.3 代码与程序3

1.4 C语言和C++语言3

第2章 控制台输入与输出4

2.1 控制台输出4

2.1.1 输出整数5

2.1.2 用变量表示整数5

2.1.3 指定显示宽度6

2.1.4 输出小数7

2.1.5 用变量表示小数8

2.1.6 指定小数点后的位置8

2.2 控制台输入8

2.2.1 输入整数9

2.2.2 输入小数9

2.2.3 一次输入多个数10

2.3 注释11

2.4 空白12

2.5 常见问题12

2.6 综合例题13

第3章 变量与常量14

3.1 变量14

3.1.1 变量的定义14

3.1.2 变量的命名15

3.1.3 变量的赋值16

3.2 整型变量16

3.2.1 char/short/int类型16

3.2.2 unsigned无符号类型17

3.2.3 bool布尔类型18

3.2.4 enum枚举类型18

3.2.5 long long长整数类型18

3.3 浮点型变量18

3.4 数的进制表示19

3.4.1 数的十进制表示19

3.4.2 数的十六进制表示19

3.4.3 数的二进制表示20

3.5 变量与内存20

3.5.1 二进制存储20

3.5.2 内存21

3.5.3 变量的大小21

3.5.4 变量在内存中的表示22

3.5.5 变量的地址22

3.5.6 理解变量的赋值23

3.6 const常量23

3.7 字面常量24

3.8 常用类型的范围25

第4章 数组26

4.1 引例26

4.2 数组的定义26

4.2.1 数组的命名27

4.2.2 数组的长度27

4.3 数组的基本使用方法27

4.3.1 数组的初始值27

4.3.2 访问数组中的元素28

4.3.3 用sized取得数组的大小29

4.4 数组的内存视图29

4.5 常见问题30

4.6 数组的使用实例31

4.6.1 实例131

4.6.2 实例231

4.6.3 实例331

4.6.4 实例431

4.7 多维数组32

4.7.1 二维问题的表示32

4.7.2 二维数组的定义32

4.7.3 二维数组的初始化33

4.7.4 二维数组的本质33

第5章 字符与字符数组34

5.1 字符是什么34

5.2 字符的表示35

5.3 字符的显示35

5.4 字符常量35

5.5 字符数组36

5.5.1 输出字符串37

5.5.2 输入字符串37

5.5.3 理解结束符的作用37

5.5.4 字符串的截断38

5.5.5 常见问题38

5.6 转义字符38

5.6.1 转义字符的概念38

5.6.2 转义字符的使用举例39

第6章 表达式与操作符41

6.1 算术表达式41

6.2 赋值表达式42

6.2.1 左值42

6.2.2 理解赋值运算42

6.2.3 赋值与算术运算合并43

6.2.4 等号串连的写法43

6.3 关系表达式43

6.4 条件表达式44

6.5 逻辑表达式45

6.6 逗号表达式46

6.7 自增/自减操作符47

6.8 位操作符48

6.8.1 按位表示48

6.8.2 位运算规则48

6.8.3 移位操作50

6.8.4 应用举例51

6.8.5 例题:把unsigned int整数转为4个字节52

6.9 类型的转换与提升52

6.10 优先级与结合顺序53

6.10.1 使用括号54

6.10.2 常用的优先级54

第7章 语句55

7.1 什么叫语句55

7.2 if语句56

7.2.1 使用复合语句57

7.2.2 最简形式if58

7.2.3 完全形式if…else if…else if…else59

7.3 switch语句60

7.3.1 匹配61

7.3.2 跳转与执行62

7.3.3 注意事项62

7.4 for语句64

7.4.1 引例64

7.4.2 使用for语句64

7.4.3 变形1:省略初始表达式65

7.4.4 变形2:省略第二个表达式65

7.4.5 变形3:省略后置表达式66

7.4.6 变形4:全部置空66

7.4.7 存在break语句66

7.4.8 存在continue语句66

7.5 while语句67

7.5.1 变形:条件判断内置68

7.5.2 例题68

7.6 do…while语句69

7.7 综合例题170

7.8 综合例题271

第8章 函数73

8.1 引例73

8.2 初步认识函数73

8.3 函数的定义75

8.3.1 函数名75

8.3.2 参数列表75

8.3.3 返回值类型76

8.3.4 函数的实现76

8.3.5 return语句的用法76

8.4 函数的调用77

8.4.1 函数的调用过程77

8.4.2 参数的顺序78

8.4.3 函数的传值调用78

8.4.4 忽略返回值79

8.4.5 直接使用返回值80

8.5 全局变量和局部变量80

8.6 变量的作用域与生命期81

8.6.1 变量的作用域81

8.6.2 变量的生命期82

8.7 变量名重名问题82

8.8 函数声明与函数定义84

8.8.1 函数的声明85

8.8.2 函数声明相关问题86

8.9 main函数86

8.10 参数的隐式转换86

8.11 函数名重载87

8.12 重载函数的匹配88

8.12.1 精确匹配88

8.12.2 模糊匹配88

8.13 参数的默认值90

8.14 内联函数91

8.15 函数的递归调用91

第9章 指针94

9.1 内存地址的表示94

9.2 指针的概念94

9.3 星号操作96

9.4 指针与数组97

9.4.1 指针加减法98

9.4.2 指针与数组的转换98

9.5 指针作为函数的参数99

9.6 数组作为函数的参数101

9.7 指针作为函数的返回值102

9.8 const指针103

9.9 void型指针104

9.10 安全地使用指针105

9.11 二重指针108

9.12 二维数组与指针108

9.12.1 作为函数的参数109

9.12.2 二维数组与指针的转换109

第10章 结构体111

10.1 引例111

10.2 结构体概述113

10.3 结构体的基本用法113

10.3.1 变量定义和初始化113

10.3.2 访问结构体的成员114

10.3.3 定义结构体数组114

10.4 结构体的内存视图115

10.4.1 结构体的成员115

10.4.2 对齐与填充116

10.5 结构体的更多用法117

10.5.1 结构体的赋值117

10.5.2 结构体指针117

10.5.3 作为函数的参数117

10.5.4 作为函数的返回值118

10.5.5 作为结构体的成员118

10.6 结构体的特殊写法119

10.6.1 没有类型名119

10.6.2 函数内部的结构体类型119

10.6.3 紧凑的形式120

10.6.4 C语言中的struct定义120

10.7 结构体的命名121

10.8 传值与传地址121

10.9 位字段bit-field122

10.10 实例123

第11章 联合体125

11.1 概念125

11.2 进一步理解union126

11.3 实例127

11.4 union的替代方案128

第12章 动态分配内存130

12.1 引例130

12.2 动态分配内存130

12.3 内存管理器与堆131

12.4 对象的生命期133

12.5 实例1134

12.6 实例2135

12.7 常见问题136

第13章 链表138

13.1 概念138

13.2 链表的构造138

13.2.1 头节点与末节点139

13.2.2 链表头的作用139

13.2.3 常见问题139

13.3 有头链表140

13.3.1 概念140

13.3.2 定义一个有头链表140

13.3.3 添加一个节点141

13.3.4 有头链表的遍历142

13.3.5 按顺序插入节点142

13.3.6 查找和删除节点143

13.3.7 和无头链表的比较143

第14章 引用144

14.1 引用的定义144

14.2 与指针的区别144

14.3 简单的例子145

14.4 作为函数的参数146

14.5 作为函数的返回值147

14.6 const引用148

第15章 字符串149

15.1 字符串的三种形式149

15.2 字符串常量的多行表示150

15.3 字符串与普通数据151

15.4 字符串的遍历151

15.5 字符串长度152

15.6 字符串复制153

15.7 字符串比较154

15.8 字符串插入和删除155

15.8.1 删除字符155

15.8.2 插入字符156

15.8.3 插入和删除的效率问题156

15.9 字符串的分割157

15.10 用数组还是用指针159

第16章 标准C函数库162

16.1 stdio.h162

16.2 math.h164

16.3 time.h165

16.3.1 time_t166

16.3.2 struct tm166

16.3.3 time取得系统当前时间167

16.3.4 localtime得到年月日时分秒167

16.3.5 mktime构造时间168

16.4 stdlib.h169

16.5 string.h171

第17章 文件操作175

17.1 认识文件175

17.2 保存数据176

17.2.1 fopen打开文件176

17.2.2 fclose关闭文件177

17.2.3 fwrite写入数据177

17.3 读取数据177

17.4 数据的存储格式179

17.5 存储格式:按字节存储180

17.5.1 指针指向的对象181

17.5.2 Run-Length Encoding存储182

17.6 存储格式:文本化存储183

17.6.1 fprintf按行格式化写入183

17.6.2 fgets按行读取184

17.7 文件的随机访问184

17.7.1 fseek随机访问184

17.7.2 文件位置指示器185

17.7.3 随机访问示例185

17.7.4 fseek的物理限制186

17.7.5 文件被重复打开的情况186

17.8 文件打开模式186

17.9 常见问题187

第18章 多文件项目及编译过程188

18.1 extern188

18.1.1 extern声明全局函数188

18.1.2 extern声明全局变量189

18.1.3 深入理解extern190

18.2 多文件项目的生成190

18.2.1 第一阶段:编译190

18.2.2 第二阶段:链接191

18.2.3 用伪代码表示整个过程192

18.2.4 全量编译与增量编译193

18.3 头文件#include指令193

18.3.1 为什么需要头文件193

18.3.2 使用头文件195

18.3.3 # include指令的原理196

18.3.4 头文件的重复包含问题196

18.3.5 头文件里的内容197

18.4 宏定义#define指令197

18.4.1 #define一个数值198

18.4.2 #define一个算式199

18.4.3 几个常见的宏定义200

18.5 条件编译指令#if200

18.5.1 #if…#endif200

18.5.2 #ifdef…#endif200

18.5.3 解决头文件重复包含的问题201

18.6 main函数的参数和返回值202

18.6.1 main函数的参数202

18.6.2 main函数的返回值204

18.7 static的用法204

18.7.1 static修饰变量204

18.7.2 static修饰函数205

第19章 面向对象编程206

19.1 面向对象设计的过程206

19.2 实例演示206

19.2.1 需求与设计206

19.2.2 写出代码框架207

19.2.3 实现各个函数接口209

19.3 封装210

第20章 类212

20.1 类和成员变量212

20.1.1 了解访问修饰符213

20.1.2 访问修饰符的用法213

20.2 类和成员函数214

20.2.1 访问修饰符的限制215

20.2.2 了解this指针216

20.2.3 this指针的用法217

20.3 变量名字的覆盖218

20.4 命名规范220

20.4.1 类名的命名规范220

20.4.2 成员函数的命名规范221

20.4.3 成员变量的命名规范221

20.5 类的封装222

20.6 类的分离式写法223

20.7 const对象与const函数224

20.7.1 const成员函数224

20.7.2 const版本与非const版本224

第21章 构造与析构226

21.1 引例226

21.2 构造函数226

21.2.1 重载构造函数227

21.2.2 构造函数的调用227

21.3 析构函数229

21.3.1 析构函数的调用229

21.3.2 在析构函数中释放资源230

21.4 自动生成的构造/析构函数231

21.5 默认构造函数232

21.6 构造函数的初始化列表232

21.6.1 参数名与成员变量名可以相同233

21.6.2 成员本身也是class类型233

21.6.3 混合使用两种初始化方式234

21.6.4 必须使用初始化列表的情形234

21.7 构造与析构的顺序235

21.8 分离式写法236

21.9 无名对象237

21.10 构造函数与类型转换237

第22章 动态创建对象239

22.1 回顾malloc/free239

22.2 用new/delete创建/销毁对象240

22.3 new/delete与malloc/free的区别241

22.4 为new指定初始化参数241

22.5 默认构造函数的必要性243

22.6 注意事项243

第23章 继承244

23.1 引例244

23.2 继承的概念244

23.3 访问修饰符protected246

23.4 成员函数的重写247

23.5 虚拟继承248

23.5.1 父类指针指向子类对象248

23.5.2 虚函数virtual249

23.5.3 virtual析构函数250

23.6 继承关系下的构造与析构250

23.7 多重继承251

23.8 继承函数与纯虚类252

23.9 以protected/ private方式继承253

第24章 拷贝构造函数254

24.1 定义254

24.2 拷贝构造函数的调用254

24.3 默认的拷贝构造函数256

24.4 定义拷贝构造函数256

24.5 深度拷贝258

第25章 静态成员260

25.1 static定义全局变量260

25.2 static定义全局函数261

25.3 与普通成员的区别263

25.4 static语法的特点264

25.5 应用1:实例计数265

25.6 应用2:单例模式267

第26章 朋友成员269

26.1 引例269

26.2 类的朋友269

26.3 friend的语法270

26.4 实例270

26.5 进一步讨论271

第27章 重载操作符273

27.1 引例273

27.2 算术操作符274

27.2.1 参数类型275

27.2.2 加法的互换性275

27.3 赋值操作符=276

27.3.1 赋以不同的类型276

27.3.2 深拷贝277

27.3.3 相关问题及注意事项278

27.3.4 检查项列表279

27.4 自增操作符++与自减操作符——279

27.5 关系操作符280

27.6 逻辑操作符281

27.7 类型转换操作符281

27.8 元素操作符[]282

27.9 输入输出操作符〉〉与〈〈283

27.10 操作符new与delete284

27.11 小结284

第28章 内部类和名字空间285

28.1 内部类285

28.1.1 内部类的语法285

28.1.2 内部类和普通类的区别286

28.1.3 内部类的用途286

28.1.4 内部类的分离式写法286

28.1.5 内部enum类型287

28.2 名字空间288

28.2.1 名字空间的定义288

28.2.2 分离式写法289

28.2.3 using语句:解除前缀290

28.2.4 名字空间里的其他类型291

28.2.5 名字空间的应用场景291

第29章 模板292

29.1 函数模板292

29.2 类模板294

29.3 模板参数295

29.4 实例295

第30章 标准模板库298

30.1 一般使用方法298

30.2 向量vector299

30.2.1 at/front/back300

30.2.2 push_back/pop_ back/resize/clear301

30.2.3 it erator/const_ iterator302

30.2.4 insert/erase303

30.3 list304

30.3.1 push_back/pop_back/push_front/pop_front305

30.3.2 size/clear305

30.3.3 front/back305

30.3.4 iterator306

30.3.5 insert/erase306

30.4 string307

30.4.1 append/clear308

30.4.2 size/capacity/resize/clear/length308

30.4.3 at309

30.4.4 字符串比较309

30.4.5 字符串查找310

30.4.6 substr311

30.4.7 insert/replace311

30.4.8 string作为函数参数312

30.5 map313

30.5.1 使用[]插入数据314

30.5.2 使用insert插入数据314

30.5.3 查找315

30.5.4 遍厉315

30.5.5 删除315

30.6 stack316

30.7 queue316

第31章 异常317

31.1 一个例子317

31.1.1 throw318

31.1.2 try…catch319

31.2 try的用法320

31.3 catch的用法321

31.3.1 匹配所有类型321

31.3.2 异常必须被捕获322

31.4 throw的用法323

31.5 常见问题324

31.5.1 异常与错误的区别324

31.5.2 不在构造函数中抛出异常325

31.5.3 不在析构函数中抛出异常325

31.5.4 关于finally325

附录A 用VC2008创建项目326

附录B 有符号整数与无符号整数335

附录C 枚举类型336

附录D VC2008调试方法338

附录E VS2008常见问题汇总346

附录F 字面常量350

附录G ASCII码表351

附录H 位字段355

附录I typedef的用法360

附录J 编码规范361

附录K C++与C语言的区别370

附录L 二进制、十进制与十六进制375

热门推荐