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

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和《编码的奥秘》对这一部分有一些介绍,如果需要掌握更细节的内存管理的内容,就要学学汇编和硬件架构。这真是学语言得把功夫下在语言之外了。


求点赞,求收藏,求分享

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值