当前位置: 首页 > 工具软件 > reek > 使用案例 >

读 Kenneth A. Reek 之《C 和指针》

萧萧迟
2023-12-01

Kenneth A. Reek, 徐波, 付飞. C 和指针. ISBN: 978-7-115-17201-3.

这本书的原名是 Pointers on C。虽然书名中强调指针,但这本书不仅仅讲指针,它其实是一本很完备的 C 语言教程。与 C Primer Plus 不同的是这本书并不面向纯新手,在阅读它之前应当有一些编程方面的基础知识。这本书在有的方面探讨得也比 C Primer Plus 深入些,例如这本书讨论了 C 编译和运行的诸多细节以及C和汇编语言的交互。此外本书的编排也更贴近知识结构本身而非初学者的学习顺序。

总得来说,这本书可以作为有一定编程基础的人系统学习 C 的教材(无需从一些特别基础的通用概念学起),也可以供读过 C Primer Plus 的人作为进阶教材使用。不过由于很多内容 C Primer Plus 和 Pointers on C 都讲到了,建议读过前者的人读后者时跳过熟悉的内容以提升阅读效率。

说到指针就不得不多说几句。指针是 C 语言的核心之一。如果没学明白指针,那么 C 语言基本就白学了。

指针,本质上是 C 对汇编中各种内存寻址方式的抽象。所以,学指针,本质是学内存的管理方式。由于计算机通过数字化管理一切,管理内存的方式自然也是给内存编号。每一个内存空间都是一个有编号的存储空间。如果这个存储空间中保存的数字是一个内存空间的编号(或者说地址),那么这个存储单元就成了一个指针变量。而代码中以常数方式给出的内存空间编号就是指针常量。这些内容都不是语言本身的内容,语言只是对内存的寻址机制做了一个抽象,抽象出一个“指针”的概念。所以只学语法,不学计算机组成和基础的硬件结构是不可能把这东西学明白的。CSAPP和《编码的奥秘》对这一部分有一些介绍,如果需要掌握更细节的内存管理的内容,就要学学汇编和硬件架构。这真是学语言得把功夫下在语言之外了。


求点赞,求收藏,求分享

欢迎关注我的公众号,微信搜索:知则

 类似资料: