标签
内容简介
《C和指针》是美国罗切斯特理工学院计算机科学教授肯尼斯·里科(Kenneth Reek)为C语言学习者撰写的进阶读物,原书名为 Pointers on C,中文版由徐波翻译,人民邮电出版社引进出版,属“C和C++经典著作”系列。全书共18章,以“指针”这一C语言中最容易被误解、也最具威力的机制为主线,串联起C语言的完整知识体系:从快速上手一个实际程序开始,依次讲解基本概念与编译环境、词法规则与程序风格、基本数据类型与声明、作用域链接属性与存储类别、语句与控制流、操作符与表达式,再深入指针、函数、数组、字符串与字节、结构和联合、动态内存分配以及使用结构与指针构建链表等数据结构的技巧,并专门开辟“高级指针话题”讨论指针的指针、函数指针、多维数组与指针的关系等难点。后半部分还覆盖预处理器、输入/输出函数、标准函数库、经典抽象数据类型(如堆栈、队列、树)和运行时环境等主题,每章配有针对性练习,附录给出部分题目的答案。本书不是零基础入门书,而是帮助已经会写简单C程序的人真正理解内存模型、参数传递、数组与指针本质差异,从而写出规范、安全、可维护的C代码。
编辑推荐
讲C语言的书很多,但愿意把“指针”单独拎出来讲透的不多。这本书的难得之处在于:它不把指针当作一个孤立的语法点,而是把指针当作理解C语言内存模型的钥匙,用大量图示和代码把“数组与指针为什么不一样”“多维数组的指针到底指向什么”“函数指针如何声明”这些老问题一次说清。作者 Kenneth Reek 有着多年操作系统、算法与网络课程的教学经验,行文带着教师特有的耐心,每章末尾专门总结“警告”和“编程提示”,把易错点提前挑明,习题量足且有附录答案,适合自学与课程配套。中文译本准确流畅,长期被国内高校列为C语言进阶参考书。需要提醒的是,本书假定读者已经写过一些C程序,若完全零基础,建议先读完一本入门教材再来。
适合谁读
适合
- 已经会写简单C程序、想彻底搞懂指针与内存的初学者
- 计算机专业学生,作为C语言课程或系统编程的配套参考书
- 从事嵌入式、操作系统、底层开发,需要夯实C基本功的工程师
- 准备面试或刷题,想补齐数组、指针、动态内存等知识短板的程序员
不适合
- 完全没接触过编程、连编译运行流程都不了解的零基础读者
- 只想快速学一门语言做项目、不关心底层机制的应用开发新手
- 希望学习C++面向对象特性或现代C++的读者
阅读建议
- 建议边读边敲:每章示例代码亲手编译运行,再对照书中“警告总结”检查自己踩过的坑。
- 第6章、第8章、第13章是全书核心,可反复研读,配合手绘内存示意图理解指针与数组的关系。
- 每章末尾的“问题”与“编程练习”不要跳过,做完再对照附录答案,效果远好于只读不练。
- 读完第11、12、17章后,尝试不用库函数手写链表、堆栈、队列,检验对动态内存与结构的掌握。
出版社简介
人民邮电出版社
中国 · 成立于 1953 年
人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。
目录
- 第1章 快速上手
- 第2章 基本概念
- 第3章 数据
- 第4章 语句
- 第5章 操作符和表达式
- 第6章 指针
- 第7章 函数
- 第8章 数组
- 第9章 字符串、字符和字节
- 第10章 结构和联合
- 第11章 动态内存分配
- 第12章 使用结构和指针
- 第13章 高级指针话题
- 第14章 预处理器
- 第15章 输入/输出函数
- 第16章 标准函数库
- 第17章 经典抽象数据类型
- 第18章 运行时环境
- 附录 部分问题答案
- 索引
- 参考文献
常见问题
这本书适合C语言零基础的人读吗?
不太适合。书中多处直接使用编译、链接、函数调用等概念,默认读者有过编程经历。零基础读者建议先读一本入门教材,把语法和编译流程走通,再回来看这本,收获会大得多。
这本书和《C Primer Plus》有什么区别?
《C Primer Plus》覆盖语法更全面更基础,适合入门;《C和指针》则聚焦指针、内存、数组与数据结构等难点,属于入门之后的进阶读物。两者可搭配使用,先入门再进阶。
中文版有多个版本,该选哪一本?
2008年人民邮电出版社版(ISBN 9787115172013)流传最广,页数448页;2020年同社再版(ISBN 9787115522689)内容基本一致,为441页,定价更高。按可得性和价格选择即可。
书中的代码可以直接在现在的编译器上运行吗?
书中代码以ANSI C为基础,绝大多数在GCC、Clang等现代编译器上可编译,但个别示例涉及未定义行为或旧式写法,编译时请打开警告选项,并按现代标准补充类型转换与返回类型。
读完这本书能达到什么水平?
能独立理解并写出涉及多级指针、函数指针、动态内存与自定义数据结构的C程序,看懂Linux内核或开源项目中的常见C代码结构,并为学习操作系统、编译原理等课程打下基础。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。