《C语言进阶 重点、难点与疑点解析》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:牟海军著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2012
  • ISBN:9787111388616
  • 页数:347 页
图书介绍:本书不是一本系统讲解C语言技术的书,而是专注于C语言中的知识难点和使用技巧,都是C语言中的一些小秘密。不适合初学者,适合有一定基础且想进一步提高的中初级读者。第1章重点讲解了C语言中不容易理解或容易理解错误的一些核心概念;第2~9章讲解了预处理、选择/循环结构程序设计、数组、指针、数据结构、函数、文件、调试和异常处理等重要知识点中的一些使用技巧和注意事项;第10章有针对性讲解了C语言中的一些“陷阱”,第11章和第12章分别讲解了C语言中必须掌握的一些算法和编程思想。

第1章 必须厘清的核心概念 2

1.1堆栈 2

1.2全局变量和局部变量 5

1.3生存期和作用域 7

1.3.1生存期 7

1.3.2作用域 10

1.4内部函数和外部函数 11

1.5指针变量 14

1.6指针数组和数组指针 17

1.7指针函数和函数指针 20

1.8传值和传址 22

1.9递归和嵌套 25

1.10结构体 29

1.11共用体 32

1.12枚举 37

1.13位域 39

第2章 预处理 47

2.1文件的包含方式 48

2.2宏定义 50

2.2.1简单宏替换 50

2.2.2带参数的宏替换 52

2.2.3嵌套宏替换 56

2.3宏定义常见错误解析 56

2.3.1不带参数的宏 56

2.3.2带参数的宏 59

2.4条件编译指令的使用 62

2.5 #pragma指令的使用 65

第3章 选择结构和循环结构的程序设计 69

3.1 if语句及其易错点解析 70

3.2条件表达式的使用 76

3.3 switch语句的使用及注意事项 78

3.4 goto语句的使用及注意事项 85

3.5 for语句的使用及注意事项 87

3.6 while循环与do while循环的使用及区别 92

3.7循环结构中break、continue、goto、return和exit的区别 98

第4章 数组 103

4.1一维数组的定义及引用 104

4.2二维数组的定义及引用 110

4.3多维数组的定义及引用 117

4.4字符数组的定义及引用 119

4.5数组作为函数参数的易错点解析 124

4.6动态数组的创建及引用 130

第5章 指针 139

5.1不同类型指针之间的区别和联系 140

5.2指针的一般性用法及注意事项 144

5.3指针与地址之间的关系 148

5.4指针与数组之间的关系 153

5.5指针与字符串之间的关系 161

5.6指针与函数之间的关系 163

5.7指针与指针之间的关系 169

第6章 数据结构 172

6.1枚举类型的使用及注意事项 173

6.2结构体变量的初始化方法及引用 177

6.2.1结构体的初始化 177

6.2.2结构体的引用 180

6.3结构体字节对齐详解 184

6.4共用体变量的初始化方法及成员的引用 193

6.5传统链表的实现方法及注意事项 196

6.6颠覆传统链表的实现方法 214

6.6.1头结点的创建 214

6.6.2结点的添加 215

6.6.3结点的删除 217

6.6.4结点位置的调整 219

6.6.5检测链表是否为空 221

6.6.6链表的合成 222

6.6.7宿主结构指针 225

6.6.8链表的遍历 225

第7章 函数 230

7.1函数参数 231

7.2变参函数的实现方法 235

7.3函数指针的使用方法 241

7.4函数之间的调用关系 245

7.5函数的调用方式及返回值 251

第8章 文件 255

8.1文件及文件指针 256

8.2 EOF和FEOF的区别 259

8.3读写函数的选用原则 264

8.4位置指针对文件的定位 270

8.5文件中的出错检测 275

第9章 调试和异常处理 279

9.1 assert宏的使用及注意事项 280

9.2如何设计一种灵活的断言 283

9.3如何实现异常处理 287

9.4如何处理段错误 293

第10章 陷阱知识点解剖 299

10.1 strlen和sizeof的区别 300

10.2 const修饰符 301

10.3 Volatile修饰符 305

10.4 Void和Void*的区别 311

10.5 #define和typedef的本质区别 314

10.6条件语句的选用 317

10.7函数realloc、malloc和calloc的区别 319

10.8函数和宏 322

10.9运算符==、=和!=的区别 323

10.10类型转换 324

第11章 必须掌握的常用算法 326

11.1时间复杂度 327

11.2冒泡法排序 329

11.3选择法排序 332

11.4快速排序 334

11.5归并排序 337

11.6顺序查找 340

11.7二分查找 341

附录 如何养成良好的编程习惯 344