在线客服
C 和指针图书
人气:114

C 和指针

全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。

内容简介

本书提供与C语言编程相关的资源和深入讨论。本书通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。本书适合C语言初学者和初级C程序员阅读,也可作为计算机专业学生学习C语言的参考。

编辑推荐

《C和指针》通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。

全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。

《C和指针》适合C语言初学者和初级c程序员阅读,也可作为计算机专业学生学习C语言的参考。

目录

目 录

第1章 快速上手 1

1.1 简介 1

1.1.1 空白和注释 4

1.1.2 预处理指令 4

1.1.3 main函数 5

1.1.4 read_column_numbers函数 8

1.1.5 rearrange函数 12

1.2 补充说明 14

1.3 编译 14

1.4 总结 15

1.5 警告的总结 15

1.6 编程提示的总结 15

1.7 问题 16

1.8 编程练习 16

第2章 基本概念 19

2.1 环境 19

2.1.1 翻译 19

2.1.2 执行 21

2.2 词法规则 21

2.2.1 字符 22

2.2.2 注释 23

2.2.3 自由形式的源代码 23

2.2.4 标识符 24

2.2.5 程序的形式 24

2.3 程序风格 25

2.4 总结 26

2.5 警告的总结 26

2.6 编程提示的总结 26

2.7 问题 27

2.8 编程练习 28

第3章 数据 29

3.1 基本数据类型 29

3.1.1 整型家族 29

3.1.2 浮点类型 32

3.1.3 指针 33

3.2 基本声明 35

3.2.1 初始化 35

3.2.2 声明简单数组 36

3.2.3 声明指针 36

3.2.4 隐式声明 37

3.3 typedef 38

3.4 常量 38

3.5 作用域 39

3.5.1 代码块作用域 40

3.5.2 文件作用域 41

3.5.3 原型作用域 41

3.5.4 函数作用域 41

3.6 链接属性 41

3.7 存储类型 43

3.8 static关键字 44

3.9 作用域、存储类型示例 45

3.10 总结 46

3.11 警告的总结 47

3.12 编程提示的总结 47

3.13 问题 48

第4章 语句 51

4.1 空语句 51

4.2 表达式语句 51

4.3 代码块 52

4.4 if语句 52

4.5 while语句 53

4.5.1 break和continue语句 54

4.5.2 while语句的执行过程 54

4.6 for语句 55

4.7 do语句 56

4.8 switch语句 57

4.8.1 switch中的break语句 58

4.8.2 default子句 59

4.8.3 switch语句的执行过程 59

4.9 goto语句 60

4.10 总结 61

4.11 警告的总结 62

4.12 编程提示的总结 62

4.13 问题 62

4.14 编程练习 63

第5章 操作符和表达式 67

5.1 操作符 67

5.1.1 算术操作符 67

5.1.2 移位操作符 67

5.1.3 位操作符 69

5.1.4 赋值 70

5.1.5 单目操作符 72

5.1.6 关系操作符 73

5.1.7 逻辑操作符 74

5.1.8 条件操作符 75

5.1.9 逗号操作符 76

5.1.10 下标引用、函数调用和结构成员 77

5.2 布尔值 78

5.3 左值和右值 79

5.4 表达式求值 80

5.4.1 隐式类型转换 80

5.4.2 算术转换 80

5.4.3 操作符的属性 81

5.4.4 优先级和求值的顺序 82

5.5 总结 85

5.6 警告的总结 86

5.7 编程提示的总结 86

5.8 问题 86

5.9 编程练习 88

第6章 指针 91

6.1 内存和地址 91

6.2 值和类型 92

6.3 指针变量的内容 93

6.4 间接访问操作符 94

6.5 未初始化和非法的指针 95

6.6 NULL指针 96

6.7 指针、间接访问和左值 97

6.8 指针、间接访问和变量 97

6.9 指针常量 98

6.10 指针的指针 98

6.11 指针表达式 99

6.12 实例 104

6.13 指针运算 107

6.13.1 算术运算 108

6.13.2 关系运算 110

6.14 总结 111

6.15 警告的总结 112

6.16 编程提示的总结 112

6.17 问题 112

6.18 编程练习 115

第7章 函数 117

7.1 函数定义 117

7.2 函数声明 119

7.2.1 原型 119

7.2.2 函数的缺省认定 121

7.3 函数的参数 122

7.4 ADT和黑盒 124

7.5 递归 127

7.5.1 追踪递归函数 128

7.5.2 递归与迭代 131

7.6 可变参数列表 134

7.6.1 stdarg宏 135

7.6.2 可变参数的限制 135

7.7 总结 136

7.8 警告的总结 137

7.9 编程提示的总结 137

7.10 问题 138

7.11 编程练习 138

第8章 数组 141

8.1 一维数组 141

8.1.1 数组名 141

8.1.2 下标引用 142

8.1.3 指针与下标 144

8.1.4 指针的效率 145

8.1.5 数组和指针 150

8.1.6 作为函数参数的数组名 150

8.1.7 声明数组参数 152

8.1.8 初始化 152

8.1.9 不完整的初始化 153

8.1.10 自动计算数组长度 153

8.1.11 字符数组的初始化 153

8.2 多维数组 154

8.2.1 存储顺序 154

8.2.2 数组名 155

8.2.3 下标 156

8.2.4 指向数组的指针 158

8.2.5 作为函数参数的多维数组 159

8.2.6 初始化 160

8.2.7 数组长度自动计算 162

8.3 指针数组 162

8.4 总结 165

8.5 警告的总结 166

8.6 编程提示的总结 166

8.7 问题 166

8.8 编程练习 170

第9章 字符串、字符和字节 175

9.1 字符串基础 175

9.2 字符串长度 175

9.3 不受限制的字符串函数 177

9.3.1 复制字符串 177

9.3.2 连接字符串 178

9.3.3 函数的返回值 178

9.3.4 字符串比较 178

9.4 长度受限的字符串函数 179

9.5 字符串查找基础 180

9.5.1 查找一个字符 180

9.5.2 查找任何几个字符 181

9.5.3 查找一个子串 181

9.6 高级字符串查找 182

9.6.1 查找一个字符串前缀 182

9.6.2 查找标记 182

9.7 错误信息 184

9.8 字符操作 184

9.8.1 字符分类 184

9.8.2 字符转换 184

9.9 内存操作 185

9.10 总结 186

9.11 警告的总结 187

9.12 编程提示的总结 187

9.13 问题 188

9.14 编程练习 188

第10章 结构和联合 195

10.1 结构基础知识 195

10.1.1 结构声明 195

10.1.2 结构成员 197

10.1.3 结构成员的直接访问 197

10.1.4 结构成员的间接访问 198

10.1.5 结构的自引用 198

10.1.6 不完整的声明 199

10.1.7 结构的初始化 199

10.2 结构、指针和成员 200

10.2.1 访问指针 201

10.2.2 访问结构 201

10.2.3 访问结构成员 202

10.2.4 访问嵌套的结构 203

10.2.5 访问指针成员 204

10.3 结构的存储分配 205

10.4 作为函数参数的结构 206

10.5 位段 209

10.6 联合 211

10.6.1 变体记录 212

10.6.2 联合的初始化 213

10.7 总结 214

10.8 警告的总结 214

10.9 编程提示的总结 214

10.10 问题 215

10.11 编程练习 217

第11章 动态内存分配 221

11.1 为什么使用动态内存分配 221

11.2 malloc和free 221

11.3 calloc和realloc 222

11.4 使用动态分配的内存 223

11.5 常见的动态内存错误 223

11.6 内存分配实例 226

11.7 总结 231

11.8 警告的总结 232

11.9 编程提示的总结 232

11.10 问题 232

11.11 编程练习 233

第12章 使用结构和指针 235

12.1 链表 235

12.2 单链表 235

12.2.1 在单链表中插入 236

12.2.2 其他链表操作 245

12.3 双链表 245

12.3.1 在双链表中插入 246

12.3.2 其他链表操作 253

12.4 总结 253

12.5 警告的总结 254

12.6 编程提示的总结 254

12.7 问题 254

12.8 编程练习 255

第13章 高级指针话题 257

13.1 进一步探讨指向指针的指针 257

13.2 高级声明 258

13.3 函数指针 260

13.3.1 回调函数 261

13.3.2 转移表 263

13.4 命令行参数 265

13.4.1 传递命令行参数 265

13.4.2 处理命令行参数 266

13.5 字符串常量 269

13.6 总结 271

13.7 警告的总结 272

13.8 编程提示的总结 272

13.9 问题 272

13.10 编程练习 275

第14章 预处理器 279

14.1 预定义符号 279

14.2 #define 279

14.2.1 宏 281

14.2.2 #define替换 282

14.2.3 宏与函数 283

14.2.4 带副作用的宏参数 284

14.2.5 命名约定 285

14.2.6 #undef 285

14.2.7 命令行定义 285

14.3 条件编译 286

14.3.1 是否被定义 287

14.3.2 嵌套指令 288

14.4 文件包含 288

14.4.1 函数库文件包含 289

14.4.2 本地文件包含 289

14.4.3 嵌套文件包含 290

14.5 其他指令 291

14.6 总结 292

14.7 警告的总结 293

14.8 编程提示的总结 293

14.9 问题 293

14.10 编程练习 295

第15章 输入/输出函数 297

15.1 错误报告 297

15.2 终止执行 298

15.3 标准I/O函数库 298

15.4 ANSI I/O概念 299

15.4.1 流 299

15.4.2 文件 300

15.4.3 标准I/O常量 300

15.5 流I/O总览 301

15.6 打开流 302

15.7 关闭流 303

15.8 字符I/O 304

15.8.1 字符I/O宏 305

15.8.2 撤销字符I/O 305

15.9 未格式化的行I/O 306

15.10 格式化的行I/O 308

15.10.1 scanf家族 308

15.10.2 scanf格式代码 308

15.10.3 printf家族 312

15.10.4 printf格式代码 312

15.11 二进制I/O 316

15.12 刷新和定位函数 316

15.13 改变缓冲方式 318

15.14 流错误函数 319

15.15 临时文件 319

15.16 文件操纵函数 319

15.17 总结 320

15.18 警告的总结 321

15.19 编程提示的总结 322

15.20 问题 322

15.21 编程练习 323

第16章 标准函数库 327

16.1 整型函数 327

16.1.1 算术 327

16.1.2 随机数 328

16.1.3 字符串转换 329

16.2 浮点型函数 329

16.2.1 三角函数 330

16.2.2 双曲函数 330

16.2.3 对数和指数函数 330

16.2.4 浮点表示形式 331

16.2.5 幂 331

16.2.6 底数、顶数、值和余数 331

16.2.7 字符串转换 332

16.3 日期和时间函数 332

16.3.1 处理器时间 332

16.3.2 当天时间 332

16.4 非本地跳转 335

16.4.1 实例 336

16.4.2 何时使用非本地跳转 337

16.5 信号 338

16.5.1 信号名 338

16.5.2 处理信号 339

16.5.3 信号处理函数 340

16.6 打印可变参数列表 341

16.7 执行环境 342

16.7.1 终止执行 342

16.7.2 断言 342

16.7.3 环境 343

16.7.4 执行系统命令 343

16.7.5 排序和查找 344

16.8 locale 346

16.8.1 数值和货币格式 346

16.8.2 字符串和locale 348

16.8.3 改变locale的效果 349

16.9 总结 349

16.10 警告的总结 350

16.11 编程提示的总结 351

16.12 问题 351

16.13 编程练习 352

第17章 经典抽象数据类型 355

17.1 内存分配 355

17.2 堆栈 355

17.2.1 堆栈接口 356

17.2.2 实现堆栈 356

17.3 队列 364

17.3.1 队列接口 364

17.3.2 实现队列 365

17.4 树 369

17.4.1 在二叉搜索树中插入 370

17.4.2 从二叉搜索树删除节点 370

17.4.3 在二叉搜索树中查找 371

17.4.4 树的遍历 371

17.4.5 二叉搜索树接口 372

17.4.6 实现二叉搜索树 373

17.5 实现的改进 379

17.5.1 拥有超过一个的堆栈 379

17.5.2 拥有超过一种的类型 380

17.5.3 名字冲突 380

17.5.4 标准函数库的ADT 381

17.6 总结 383

17.7 警告的总结 384

17.8 编程提示的总结 384

17.9 问题 384

17.10 编程练习 385

第18章 运行时环境 387

18.1 判断运行时环境 387

18.1.1 测试程序 387

18.1.2 静态变量和初始化 390

18.1.3 堆栈帧 391

18.1.4 寄存器变量 391

18.1.5 外部标识符的长度 393

18.1.6 判断堆栈帧布局 393

18.1.7 表达式的副作用 398

18.2 C和汇编语言的接口 399

18.3 运行时效率 400

18.4 总结 402

18.5 警告的总结 403

18.6 编程提示的总结 403

18.7 问题 403

18.8 编程练习 403

附录 部分问题答案 405

索引 443

参考文献 448

网友评论(不代表本站观点)

来自无昵称**的评论:

以前对指针确实有些搞不清,看完之后是真的觉得是一本好书让我自己理清了。如果对指针有什么不清楚的这本书没错!

2016-10-31 01:55:38
来自lzn449**的评论:

C语言经典之作~~对指针的理解很深入~~是C语言的精髓啊~~

2013-02-02 00:01:35
来自无昵称**的评论:

看开头就觉得这本书很好,看过几本C教材,感觉只是讲一些表面的,理论的东西,导致很难真正用起来,这本书有很多实际的、深层次的解释,所以很好理解,建议学C者购买,不过可能要有编程基础。

2009-08-17 01:58:37
来自无昵称**的评论:

这是我在当当买的第四本C方面的书了。书很经典,值得一读。写的也很详细。不过这本书里面很多内容都有点古老,比如K&R C,UNIX C方面的一些知识现在都已经成了历史了。但是仍然不失为一本经典著作。

2011-12-20 01:01:25
来自凡小路**的评论:

C学习路上的重要经典书籍,我身边搞C开发的小伙伴基本都有这本书。重点讲了很重要的指针。

2015-07-19 13:47:09
来自围巾的**的评论:

讲C和C++的书真是汗牛充栋,C的精华是指针而C++的精华大概就要算是OPP了,从我个人的角度来说,这本书很和我的胃口,因为要研究linux内核的缘故,所以多了解了解C是很有帮助的

2013-01-01 13:44:06
来自tao8652**的评论:

以前曾经学过C语言,但是指针一直是个瓶颈问题,无论怎么看都没有搞清楚,但是看了这本书后感觉我从迷雾中走出来了!他从机器的底层 讲解指针的表示和作用!是我感受颇深!

2009-05-27 12:12:44
来自maojian**的评论:

C和指针,表面看是讲指针的,我觉得,它对C的各个细节都做了很详细的讲解,我非常佩服作者,我除了看过C程序设计,就看这本了。

2011-10-28 17:29:19
来自无昵称**的评论:

整本书讲述了C语言里面重要的指针。看完这本书,玩转C指针

2013-06-16 21:35:26
来自无昵称**的评论:

据说是学习C语言必看的,毕竟指针是C语言的精华,而且作者写书的思路很独特,书看了一部分,思路和例子都很棒,比较推荐的。

2017-08-31 19:33:51
来自匿名用**的评论:

冲着这本书来的,的确非常经典的一本书,我不建议那些没学过C语言基础的人买,但是如果学过并想学好就应该买。还有,我认为当当网如果就专注于买书就好了,应该专业、专注。

2017-06-17 20:23:05
来自1风雪无**的评论:

首先,书的印刷很好,质量绝对没得说。对书的内容,这本书的风格的确和国内的书大不一样,最好在看之前有一点C的基础,这样看会很有体会。这本书涉及的内容很值得回味~~好书~~值得推荐

2012-06-18 12:40:49
来自jasonts**的评论:

指针是C的灵魂,有需要了解指针下。这本书有助于你深入理解C的指针。

2014-05-20 21:14:04
来自chuckie**的评论:

C语言经典书籍之一,对指针详细的讲解。不错的书。

2016-09-23 17:26:12
来自欧培辉**的评论:

虽然我的水平不足以评论翻译者的水平!!但是看完之后强烈建议,书名改为:C语言之路(或则C语言导论),根本不是简单的说说指针而已,而是包罗万象,把C语言的方面都提到了

2013-06-08 23:43:48
来自钢笔小**的评论:

很少写评论,刚看了一章,很适合C语言查漏补缺

2011-12-15 10:35:21
来自三水合**的评论:

看过老谭那本C语言也许你能使用C语言进行编程,勤加练习,可能成为一个实践的高手,看过K&R的C程序设计语言,将会对C有了进一步的认识和提高,而且K&R绝对是C语言的最有发言权的作者,不过这本C和指针会对你平时使用C进行开发的众多疑惑进行解答,使你不仅知其然还知其所以然!

2012-11-07 09:04:08
来自胡铭琰**的评论:

经典之作,与《C陷阱与缺陷》《C专家编程》等并称编程三剑客,任何一个C程序员必看之作。

2015-06-21 13:14:33
来自czh_ust**的评论:

本书内容很好,开头就是一段大程序,让读者很快进入C的世界,相对于其他基础书籍的第一个例程Hello World更加专业,书中的讲解到位,值得一看,不过要是对C基本语法有一定的了解,再看这本书,你会有很大收获的!

2012-07-30 17:22:29
来自graphic**的评论:

本书对于C语言的语法很全面,是作者长时间实践的结晶。对于指针的描述尤为突出。在书中作者通过各种提示的方式提醒各位C程序注意事项,并提出忠告。使初学者能够更快的掌握C程序的难点。

2010-05-03 23:24:51
来自无昵称**的评论:

正如本书的名字《C和指针》本书在讲指针的时候 是真正的深入浅出,在学习本书之前,本人对指针学得总是晕头,不知所挫,自从看了指针这一章后,突然对C有种特别的感悟,同时深入理解指针,对认识计算机更深入一层了。哈哈

2011-02-21 11:35:31
来自B.Rok**的评论:

毫无疑问,指针是C语言最有力的工具之一,允许程序员对内存直接进行操作.但是权利意味着责任与危险.使用指针也是造成很多诡异错误的根源.这本书正是为了这个目的编写,既阐述了指针的强大特性,又重点介绍了如何规避指针带来的底层错误.灵活运用指针又不产生错误是优秀C程序员必须做到的,在这方面这本书无疑是非常值得一看的.

2014-05-02 18:32:43
来自KosClos**的评论:

指针,C语言的精华所在。在它方便快捷的同时,也给我们带来了无尽的烦恼,内存泄露--指针惹得祸,程序崩溃---还是指针的作祟。C和指针这本书除了让我们对C语言有了一次回顾和总结之外,更是对指针的一种深入理解,看过这本书,发现其实指针并不是想象中的可怕和令人畏惧。这真是一本好书。

2010-10-29 20:19:09
来自s***i(**的评论:

一起买的四本书,一本都没收到,更可气的是东西没收到,就被确认收货了,联系当当客服,说是物流确认收货的,物流啥时候有这权利了,消费者的利益谁来保护,收没收到货不需要问问收获人吗?真是搞笑

2017-05-27 19:57:30

免责声明

更多出版社