猜你喜欢
C和C++经典著作:C和指针+C专家编程+C陷阱与缺陷(京东套装共3册)

C和C++经典著作:C和指针+C专家编程+C陷阱与缺陷(京东套装共3册)

书籍作者:[美] 肯尼斯·里科 ISBN:9787115005380
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3059
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

9787115522689 C和指针 99.00

9787115521323 C专家编程 69.00

9787115521279 C 陷阱与缺陷 49.00

《C和指针》

《C和指针》提供与C语言编程相关的全面资源和深入讨论。本书通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。


全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。


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



《C专家编程》

《C专家编程》展示了优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。


《C专家编程》对C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。本书撷取几十个实例进行讲解,对C程序员具有非常高的实用价值。


《C专家编程》可以帮助有一定经验的C程序员成为C编程方面的专家;对于C语言功底深厚的程序员,本书可以帮助他们站在C的高度了解和学习C++。



《C 陷阱与缺陷》

《C陷阱与缺陷》作者以自己1985年在贝尔实验室时发表的一篇论文为基础,结合自己的工作经验将这篇论文扩展成对C程序员具有珍贵价值的经典著作。本书的出发点不是批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。


《C陷阱与缺陷》分为8章,分别从词法陷阱、语法陷阱、语义陷阱、链接、库函数、预处理器、可一致性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。


《C陷阱与缺陷》适合有一定经验的C程序员阅读学习,即便你是C编程高手,本书也应该成为你的案头必备图书。

作者简介

《C和指针》

Kenneth Reek是美国Rochester工业学院计算机系教授,有几十年年的C编程教学经验,并凭借《C和指针》一书获得了ACUU的高度评价。


《C专家编程》

Peter van der Linden,Sun公司编译器和OS核心开发团队成员,世界知名的专家级C程序员,拥有多年的C开发实战经验,对C/C++语言有深入理解。


《C 陷阱与缺陷》

Andrew Koenig,AT&T大规模程序研发部(前贝尔实验室)成员。他从1986年开始从事C语言的研究,1977年加入贝尔实验室。他编写了一些早期的类库,并在1988年组织召开了第一个具有相当规模的C++会议。在ISO/ANSI C++委员会成立的1989年,他就加入了该委员会,并一直担任项目编辑。他已经发表了100多篇C++方面的论文,并在Addsion-Wesley出版了C Traps and Pitfalls 一书(中文版名为《C缺陷与陷阱》,由人民邮电出版社出版),还应邀到世界各地演讲。


Anderw Koenig不仅有着多年的C++开发、研究和教学经验,而且还亲身参与了C++的演化和变革,对C++的变化和发展产生了重要的影响。

编辑推荐
适读人群 :本书适合C语言初学者和初级C程序员阅读,也可作为计算机专业学生学习C语言的参考。

C&C++经典著作三剑客,帮助C程序员绕过编程过程中的陷阱和障碍,掌握C编程精髓!


《C和指针》

1.C指针经典之作2020Z新版,全球畅销30余年,影响了国内外好几代程序员的C语言圣经级作品,中文版累计销售14w+册;


2.此书获得了ACUU的高度评价,ACCU主席Francis Glassborow倾力推荐;


3.本书凸现指针对C的重要性,提供宝贵的提示和智慧的警告,向大家展示指针在C程序中的巨大威力;


4.本书提供与C语言编程相关的全面资源和深入讨论,通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。


本书是为水平较高的C程序员和学生量身打造的,为那些需要深入理解C编程语言的人提供了以全面详尽的资源。本书对指针的基础知识和高级特性进行了全面且深入的讲解与探索,确保C程序员能够将指针的强大功能融入到他们的C程序中。本书内容覆盖全面,对C编程惯用法进行了详细解释,还对C指针的一些高级主题进行了深入讨论,对于高水平的学生和C程序员来说,本书是相当有价值的教程和参考资料。


本书内容:


提供了完整的背景信息,以方便读者全面理解C语言;


全面介绍了指针的内容,包括语法、有效使用指针的艺术,以及指针的常见编程惯用法;


对实现通用抽象数据结构的不同方法进行了比较;


使用简单、熟悉的写作风格来清楚解释难度较大的主题,并使用大量的插图和图表将复杂的概念进行可视化;


讨论了编程技巧、效率、可移植性和软件工程等问题,并利用“警告”的方式对一些常见的编程陷阱进行了标注;


介绍了C标准库中的每一个函数。



《C专家编程》

这是一本非常与众不同的C语言图书,本书采用轻松、对话式的方式,介绍了作者在实践经验中总结出的许多令人吃惊的案例:


将太空探测器炸毁到金星的软件;


能关闭整个AT&T电话系统的C语言bug;


C程序员工作面试的秘密;


程序员为什么分不清万圣节和圣诞节;


一个完整的BASIC解释器的C代码。


本书揭示了世界上卓-越的C程序员使用的编码技术。本书尽管以C语言为主题,但还是对C++进行了简单介绍。C程序员无须花费数周的时间就可以理解这些C++知识。


本书涵盖了IBM和UNIX系统,真正做到了C语言学习的寓教于乐,对于想要了解更多C语言实现、实用技巧以及C语言奇闻异事的读者来说,本书是必备读物。



《C 陷阱与缺陷》

1.ACCU主席Francis Glassborow倾力推荐,影响了国内外好几代程序员的经典作品;


2.C++业界资深技术大神、C++标准委员会成员、C++沉思录作者Andrew Koenig的成名著作;


3.全球畅销30余年,中文版累销100000+册;


4.本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。


聆听大师教诲 掌握编程精髓


本书对会让程序预期行为与实际行为产生很大不同的C语言特性进行了详细介绍。本书通过具体的案例和有帮助的建议来演示并介绍C语言中的这些陷阱与缺陷。本书每章末尾还包含了一些思考和相应的讨论。


即使是C编程专家,也会经常遇到一些需要数天调试才能修复的问题。本书中的每个示例都会让C程序员陷入困境,本书将通过展示这些困境来帮助读者预防这些问题。


除了书中的这些示例之外,本书还提供了下面这些建议:


避免离一(off-by-one)错误;


理解和构建函数声明;


理解指针和数组之间的微妙关系。


本书源自作者十多年的C编程经验总结,对于任何曾经编写过C程序的人来说(无论是新手还是专家),本手都是理想的阅读资料。

目录

《C和指针》


第1章快速上手 1


1.1 简介 1


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.2 词法规则 21


2.3 程序风格 25


2.4 总结 26


2.5 警告的总结 26


2.6 编程提示的总结 26


2.7 问题 27


2.8 编程练习 28


第3章 数据 29


3.1 基本数据类型 29


3.2 基本声明 35


3.3 typedef 38


3.4 常量 38


3.5 作用域 39


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.6 for语句 55

4.7 do语句 56

4.8 switch语句 57

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.2 布尔值 78

5.3 左值和右值 79

5.4 表达式求值 80

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.14 总结 111

6.15 警告的总结 112

6.16 编程提示的总结 112

6.17 问题 112

6.18 编程练习 115

第7章 函数 117

7.1 函数定义 117

7.2 函数声明 119

7.3 函数的参数 122

7.4 ADT和黑盒 124

7.5 递归 127

7.6 可变参数列表 134

7.7 总结 136

7.8 警告的总结 137

7.9 编程提示的总结 137

7.10 问题 138

7.11 编程练习 138

第8章 数组 141

8.1 一维数组 141

8.2 多维数组 154

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.4 长度受限的字符串函数 179

9.5 字符串查找基础 180

9.6 高级字符串查找 182

9.7 错误信息 183

9.8 字符操作 184

9.9 内存操作 185

9.10 总结 186

9.11 警告的总结 187

9.12 编程提示的总结 187

9.13 问题 187

9.14 编程练习 188

第 10章结构和联合 195


第 11章动态内存分配 221

第 12章使用结构和指针 235


第 13章高级指针话题 257


第 14章预处理器 279

第 15章输入/输出函数 297


第 16章标准函数库 327


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


第 18章运行时环境 387


附录 部分问题和编程练习的答案 405



《C专家编程》

第1章C:穿越时空的迷雾 1

1.1 C语言的史前阶段 1

1.2 C语言的早期体验 4

1.3 标准I/O库和C预处理器 5

1.4 K&RC 8

1.5 今日之ANSIC 10

1.6 它很棒,但它符合标准吗 12

1.7 编译限制 14

1.8 ANSIC标准的结构 15

1.9 阅读ANSIC标准,寻找乐趣和裨益 18

1.10 “安静的改变”究竟有多少安静 22

1.11 轻松一下——由编译器定义的Pragmas效果 25

第 2章这不是Bug,而是语言特性 27

2.1 这关语言特性何事,在Fortran里这就是Bug呀 27

2.2 多做之过 29

2.3 误做之过 36

2.4 少做之过 43

2.5 轻松一下——有些特性确实就是Bug 51

第3章 分析C语言的声明 53

3.1 只有编译器才会喜欢的语法 54

3.2 声明是如何形成的 56

3.3 优先级规则 61

3.4 通过图表分析C语言的声明 63

3.5 typedef可以成为你的朋友 65

3.6 typedefintx[10]和#definexint[10]的区别 66

3.7 typedefstructfoo{...foo;}的含义 67

3.8 理解所有分析过程的代码段 69

3.9 轻松一下——驱动物理实体的软件 71

第4章 令人震惊的事实:数组和指针并不相同 79

4.1 数组并非指针 79

4.2 我的代码为什么无法运行 79

4.3 什么是声明,什么是定义 80

4.4 使声明与定义相匹配 84

4.5 数组和指针的其他区别 84

4.6 轻松一下——回文的乐趣 85

第5章 对链接的思考 89

5.1 函数库、链接和载入 89

5.2 动态链接的优点 92

5.3 函数库链接的5个特殊秘密 95

5.4 警惕Interpositioning 99

5.5 产生链接器报告文件 104

5.6 轻松一下——看看谁在说话:挑战Turing测验 105

第6章 运动的诗章:运行时数据结构 111

6.1 a.out及其传说 112

6.2 段 113

6.3 操作系统在a.out文件里干了些什么 115

6.4 C语言运行时系统在a.out里干了些什么 117

6.5 当函数被调用时发生了什么:过程活动记录 119

6.6 auto和static关键字 123

6.7 控制线程 124

6.8 setjmp和longjmp 124

6.9 UNIX中的堆栈段 126

6.10 MS-DOS中的堆栈段 126

6.11 有用的C语言工具 127

6.12 轻松一下——卡耐基·梅隆大学的编程难题 130

6.13 只适用于高级学员阅读的材料 132


第7章 对内存的思考 133


7.1 Intel80x86系列 133


7.2 Intel80x86内存模型以及它的工作原理 137


7.3 虚拟内存 141


7.4 cache存储器 144


7.6 内存泄漏 149


7.7 总线错误 153


7.8 轻松一下——“ThingKing”和“页面游戏” 159


第8章 为什么程序员无法分清万圣节和圣诞节 163


8.1 Portzebie度量衡系统 163


8.2 根据位模式构筑图形 164

8.3 在等待时类型发生了变化 166

8.4 原型之痛 168

8.5 原型在什么地方会失败 170

8.6 不需要按回车键就能得到一个字符 173

8.7 用C语言实现有限状态机 177

8.8 软件比硬件更困难 178

8.9 如何进行强制类型转换,为何要进行类型强制转换 181

8.10 轻松一下——国际C语言混乱代码大赛 183

第9章 再论数组 193

9.1 什么时候数组与指针相同 193

9.2 为什么会发生混淆 194

9.3 为什么C语言把数组形参当作指针 199

9.4 数组片段的下标 202

9.5 数组和指针可交换性的总结 203

9.6 C语言的多维数组 203

9.7 轻松一下——软件/硬件平衡 209

第 10章再论指针 213

第 11章你懂得C,所以C++不在话下 235

附录A 程序员工作面试的秘密 265

《C陷阱与缺陷》

第0章导读 1

第 1章词法“陷阱” 5

1.1 =不同于== 6

1.2 &和|不同于&&和|| 8

1.3 词法分析中的“贪心法” 8

1.4 整型常量 10

1.5 字符与字符串 11

第 2章语法“陷阱” 15

2.1 理解函数声明 15

2.2 运算符的优先级问题 19

2.3 注意作为语句结束标志的分号 24

2.4 switch语句 26

2.5 函数调用 28

2.6 “悬挂”else引发的问题 28


第3章 语义“陷阱” 33

3.1 指针与数组 33

3.2 非数组的指针 39

3.3 作为参数的数组声明 41

3.4 避免“举隅法” 43

3.5 空指针并非空字符串 44

3.6 边界计算与不对称边界 45

3.7 求值顺序 57

3.8 运算符&&、||和! 59

3.9 整数溢出 61

3.10 为函数main提供返回值 62

第4章 链接 65

4.1 什么是链接器 65

4.2 声明与定义 67

4.3 命名冲突与static修饰符 69

4.4 形参、实参与返回值 70

4.5 检查外部类型 77

4.6 头文件 80

第5章 库函数 83

5.1 返回整数的getchar函数 84

5.2 更新顺序文件 85

5.3 缓冲输出与内存分配 86

5.4 使用errno检测错误 88

5.5 库函数signal 89

第6章 预处理器 93

6.1 不能忽视宏定义中的空格 94

6.2 宏并不是函数 94

6.3 宏并不是语句 99

6.4 宏并不是类型定义 101

第7章 可移植性缺陷 103

7.1 应对C语言标准变更 104

7.2 标识符名称的限制 106

7.3 整数的大小 107

7.4 字符是有符号整数还是无符号整数 108

7.5 移位运算符 109

7.6 内存位置0 110

7.7 除法运算时发生的截断 111

7.8 随机数的大小 113

7.9 大小写转换 113

7.10 首先释放,然后重新分配 115

7.11 可移植性问题的一个例子 116

第8章 建议与答案 123

8.1 建议 124

8.2 答案 128

附录A printf、varargs与stdarg 147

附录B Koenig和Moo夫妇访谈 169