C专家编程

[美] Peter Van Der Linden

出版时间

2008-01-31

ISBN

9787115171801

评分

★★★★★

标签

编程

书籍介绍
这不是一本教你怎么写C的书,而是一本带你'回到现场'的书。它把C语言里那些让人抓狂的细节——数组为何不等于指针、const到底限定了谁、为什么`char**`和`const char**`不能直接赋值——都放回它们被发明出来的历史语境里,告诉你'为什么当初要这么设计'。读者反复提及的,正是这种'八卦式'的讲法:作者像个讲黑历史的人,把标准库、K&R C、ANSI标准的'安静改变'一一道来,让你恍然大悟'原来这里的历史原因在这儿'。它适合那些已经能写C、却对指针、链接、内存'感觉混乱'的程序员,值得反复重读。唯一需要提醒的是:部分例子依赖旧标准,现代GCC与ANSI C已有出入,照着敲可能报错。
AI导读
核心看点
  • 深入剖析指针与数组的本质区别
  • 揭示C语言历史遗留的怪异特性
  • 从底层视角解析链接与内存管理
读者共识
  • 幽默风趣,充满黑客轶事与八卦
  • 对指针和数组的讲解透彻且深刻
  • 翻译质量参差不齐,阅读体验略差
精彩摘录
  • "char* s 与 const char* p 相容,char **s 与 const char** p却不相容? 要使上述的赋值合法,必须满足下列条件之一: 1. 两个操作数都是指向有限定符或者无限定符的相容类型的指针; 2. 左边指针所指向的类型必须具有右边指针指向类型的全部限定符; const限定符是修饰指针所指向的类似,而不是指针本身。 类似地,cost char**也是一个没有限定符的指针类型。它的类型是“指向有const限定符的char类型的指针 的指针”"
  • "const最有用的用法就是用它限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其它函数却可能会修改它。"
  • "当内核检测到“不会出现”的情况时,他就会“惊慌失措”,引起突然停止。…… 为解决内核的“惊慌”问题,首先必须考虑有哪些事情有可能吓坏操作系统。 Sun 的内核开发小组有一个很隐蔽的 Bug,非常难以发现。其症状是内核的内存偶尔会被覆盖,这会使操作系统“惊慌”。"
  • "对编译器而言,一个数组就是一个地址,一个指针就是一个地址的地址。你应该根据情况做出选择。 …… 为什么人们会错误地认为数组和指针是可以完全互换的呢?这是因为他们阅读了标准的参考文献! The C Programming Language,第二版,Kernihan & Ritchie,第 99 页的底部是: As format parameters in a function definition, 然后翻到第 100 页,紧接前句: char s[]; and char s*; are equivalent... 呜呼!真是不幸,这么重要的一句话竟然在 K&R 第二版中被分印在了两页上!人们在"
  • "const float *类型并不是一个具有限定符的类型——它的类型是“指向一个具有const限定符的float类型的指针”,也就是说const限定符是修饰指针所指向的类型,而不是指针本身。"
  • "关键字const并不能把变量变成常量!在一个符号前加上cosnt限定符只是表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的。"
  • "static: 在函数内部,表示该变量的值在各个调用间一直保持延续性。 在函数这一级,表示该函数只对文件可见。 注:你可能会奇怪static的意义会相差如此之大,如果你知道原因,也请告诉我一声。(笔记者注:这句比较搞笑。)"
  • "chapter 2: It's not a bug,it's a language feature!"
目录
第1章 C:穿越时空的迷雾
1.1 C语言的史前阶段
1.2 C语言的早期体验
1.3 标准I/O库和C预处理器
1.4 K&R C

显示全部
用户评论
無愧於名號!插草標賣身推薦,值得反覆重溫。
TCPL让你认识C,这本书才能让你开始了解C。
对c 本身有模糊的地方 值得一读 感觉混乱的地方 总有历史原因
1,各种黑历史真好看,八卦之火熊熊燃烧 2,讲了各种c的缺陷,推荐go用户好好体验,很多都在go里做了修正 3,内存跟指针那几章讲得很透彻
书很好. 翻译一般. 校对不负责任.
老实说,一般般,不是喜欢的技术书的类型
如果helloworld可以运行和理解,那么,其他所有包括chrome的程序都可以运行理解------理论。
其实读不太懂 本书大多都是围绕IBM微软之类的内存开发 这本书更像是C语言的历史, 会介绍一些代码
20多年前的书,现在读起来很过瘾
内容涉及面挺广的,是一本深入C语言的好书。但是由于年代久远,很多内容已经过时了,后来者选择性阅读即可。
下载
收藏