C与指针 - 图1

    关键字:C语言,指针,数组,函数,数据结构

    推荐:★★★★
    难度:★★

    豆瓣链接:https://book.douban.com/subject/3012360/


    每天地铁的时候手机信号都不好,闲来无事只好读些书了。
    最近听群里有人推荐这本书,于是拿来看了看。
    总体感觉还不错,是一本好书。

    本书并不太适合C语言初学者,高级程序员看起来也很乏味。
    可以看做一本进阶读物。
    指针和数据在内存中的存储方式,是从头到尾贯穿全书的。

    对C语言各个中级特性都详细的进行了介绍。
    难能可贵的是,读完以后会认识到C语言的设计哲学,
    以及C语言的设计者当初做的各种折中考虑。

    本书涵盖的内容很丰富,
    数据,语句,操作符,表达式,函数,
    数组,字符串,结构,
    内存分配,指针,
    预处理,IO函数,标准函数库,
    抽象数据类型,与汇编交互。

    其中讲到了以下知识点,在初级读物中是很少提到的。
    变量的作用域,链接属性,存储类型
    左值和右值
    使用“推论声明”来判断声明变量的类型
    函数的可变参数列表
    指针与下标,数组和指针的效率
    联合
    动态内存分配
    回调函数,命令行参数
    流IO
    非本地跳转,setjmp,longjmp
    信号
    实现基本的数据结构
    编译后的简单汇编代码

    认真读了以后,就会发现,
    本书,既不像某些初级读物,读来读去都学不到新鲜玩意。
    本书,也不像某些伪高级读物,整本书都是在告诉这样做哪里不好。

    与之不同的是,
    本书一直在详细的告诉读者,怎样做是对的,
    难能可贵的是,很多处都提到了代码质量,使用好的算法,这些有前瞻性的思想。

    最后,可以稍微提一下美中不足之处。
    这本书关于编译和链接的细节,并没有深入探讨。
    这也是情有可原的,本书的主题思想很明确,
    就是用C语言设计者的思想来看待C语言的方方面面。

    至于C语言设计者的思想是什么呢?
    还请仔细一读吧。