征服C指针(第2版) 封面

征服C指针(第2版)

评分 4.2
章节数
8
丛书
图灵程序设计丛书
ISBN
9787115554895

标签

内容简介

《征服C指针(第2版)》是日本程序员前桥和弥所著的一本专讲C语言指针的技术书,中文版由朱文佳翻译,隶属图灵程序设计丛书。全书只讨论一个主题——指针,内容却覆盖指针学习中最容易卡住的环节:从内存与地址的基本模型讲起,用可直接运行的小实验让读者亲眼看到函数调用、静态变量、自动变量(栈)、malloc动态分配(堆)、对齐与字节序在内存中的真实摆法;再借此拆解指针与数组“看起来相似、本质不同”的关系,以及地址运算符、间接运算符、下标运算符和指针运算的规则;进而系统讲解如何解析那些让人纠结的C声明语法,讲清函数指针、指向数组的指针等复杂类型;最后落到实际应用,用统计单词出现频率、绘图工具数据结构等案例演示指针在链表等数据结构中的用法,并总结常见陷阱与惯用写法。第2版基于64位操作系统对内存布局相关内容做了大幅修订,新增ISO C99、C11 标准下可变长数组等内容的介绍,面向已有C语言基础的中级学习者和计算机专业学生,也可作为C语言课程参考书。

编辑推荐

市面上讲C语言的书很多,专门讲指针还讲得这么细的很少。这本书的优点在于“不空谈”:作者前桥和弥是日本一线程序员,习惯用实验说话——写一段小程序、打印一组地址,让读者自己看见栈、堆、静态区里变量的位置,指针那些抽象的规则于是有了具体的落点。第2版基于64位环境重写了内存相关的部分,并补入C99、C11的内容,不会出现照着老书实验、结果地址宽度对不上的尴尬。作者的“毒舌”文风也值得一提:对C语言语法的不完备之处直言不讳,读起来不闷,还能顺带纠正不少从教材里带出来的误解。全书篇幅不算大,却做到了从概念到数据结构案例的贯通,适合当作“指针专题”的第二本书——先有一本入门教材打底,再拿它把指针彻底理清。

适合谁读

适合

  • 学完C语言基础语法、被指针卡住的中级学习者
  • 计算机专业在读学生,需要补充指针与内存模型的系统认识
  • 从事嵌入式、驱动、底层开发的工程师,想理清内存布局细节
  • 想读懂复杂C声明、函数指针和数据结构用法的自学者

不适合

  • 完全没有C语言基础的零起点读者,建议先读一本入门教材
  • 只想快速查阅语法条目、不需要理解底层模型的人

阅读建议

  1. 先完成第2章的内存实验,跟着敲代码并打印地址,把栈、堆、静态区的概念落到实际观察上。
  2. 第3章讲声明解读与表达式时慢读,可对照自己项目中的复杂声明逐条练习,做过一遍比反复看更有效。
  3. 读完后把书中数据结构案例改写一遍,例如用链表实现单词统计,检验是否真正掌握了指针操作。

出版社简介

人民邮电出版社 中国 · 成立于 1953 年

人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。

目录

  1. 第0章 本书目标与读者对象
  2. 第1章 打好基础——预备知识和复习(C语言是什么样的语言;内存和地址;关于指针;关于数组)
  3. 第2章 做个实验——C语言是怎样使用内存的(虚拟地址;内存的使用方法;函数与字符串字面量;静态变量;自动变量与栈;递归调用;C99中的可变长数组;malloc()动态分配;对齐;字节序)
  4. 第3章 语法揭秘——它到底是怎么回事(解读C语言声明;数据类型的模型;表达式;数组与指针截然不同)
  5. 第4章 数组和指针的常见用法(基本用法;组合使用)
  6. 第5章 数据结构——指针的真正用法(案例学习1:计算单词的使用频率;案例学习2:绘图工具的数据结构)
  7. 第6章 其他——拾遗(新的函数组;陷阱;惯用写法)
  8. 参考文献

常见问题

这本书适合C语言零基础的人读吗?
不太适合。作者在前言中就把读者对象定位为已有C语言基础的中级学习者,书中会直接使用函数、结构体、数组等概念,零基础读者容易跟不上,建议先读完一本入门教材再来。
第1版(2013年,吴雅明译)和第2版有什么区别?
第2版由朱文佳翻译,基于64位操作系统对内存布局、动态分配等内容做了大幅修订,并新增ISO C99、C11标准(如可变长数组)的介绍;第1版为32位环境下的内容,部分实验结论在新机器上会不一致。
书中的代码需要什么环境才能运行?
书中示例以标准C为主,可在GCC、Clang等常见编译器上编译运行;出版社提供配套代码资源下载,建议对照版权页或图灵社区页面获取。
读完这本书能达到什么水平?
能够独立解读复杂C声明、理解指针与数组的本质差别,掌握栈、堆、对齐、字节序等内存机制,并用指针实现链表等数据结构;但C语言标准库与工程实践仍需其他书籍补充。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

同一作者

同类高分