第1章 C:穿越时空的迷雾
1.1 C语言的史前阶段
1.2 C语言的早期体验
1.3 标准I/O库和C预处理器
1.4 K&R C
1.5 今日之ANSI C
1.6 它很棒,但它符合标准吗
1.7 编译限制
1.8 ANSI C标准的结构
1.9 阅读ANSI C标准,寻找乐趣和裨益
1.10 “安静的改变”究竟有多少安静
1.11 轻松一下——由编译器定义的Pragmas效果
第2章 这不是Bug,而是语言特性
2.1 这关语言特性何事,在Fortran里这就是Bug呀
2.2 多做之过
2.3 误做之过
2.4 少做之过
2.5 轻松一下——有些特性确实就是Bug
2.6 参考文献
第3章 分析C语言的声明
3.1 只有编译器才会喜欢的语法
3.2 声明是如何形成的
3.3 优先级规则
3.4 通过图表分析C语言的声明
3.5 typedef可以成为你的朋友
3.6 typedef int x[10]和#define x int[10]的区别
3.7 typedef struct foo{ ... foo; }的含义
3.8 理解所有分析过程的代码段
3.9 轻松一下——驱动物理实体的软件
第4章 令人震惊的事实:数组和指针并不相同
4.1 数组并非指针
4.2 我的代码为什么无法运行
4.3 什么是声明,什么是定义
4.4 使声明与定义相匹配
4.5 数组和指针的其他区别
4.6 轻松一下——回文的乐趣
第5章 对链接的思考
5.1 函数库、链接和载入
5.2 动态链接的优点
5.3 函数库链接的5个特殊秘密
5.4 警惕Interpositioning
5.5 产生链接器报告文件
5.6 轻松一下——看看谁在说话:挑战Turing测验
第6章 运动的诗章:运行时数据结构
6.1 a.out及其传说
6.2 段
6.3 操作系统在a.out文件里干了些什么
6.4 C语言运行时系统在a.out里干了些什么
6.5 当函数被调用时发生了什么:过程活动记录
6.6 auto和static关键字
6.7 控制线程
6.8 setjmp和longjmp
6.9 UNIX中的堆栈段
6.10 MS-DOS中的堆栈段
6.11 有用的C语言工具
6.12 轻松一下——卡耐基-梅隆大学的编程难题
6.13 只适用于高级学员阅读的材料
第7章 对内存的思考
7.1 Intel 80x86系列
7.2 Intel 80x86内存模型以及它的工作原理
7.3 虚拟内存
7.4 Cache存储器
7.5 数据段和堆
7.6 内存泄漏
7.7 总线错误
7.8 轻松一下——“Thing King”和“页面游戏”
第8章 为什么程序员无法分清万圣节和圣诞节
8.1 Portzebie度量衡系统
8.2 根据位模式构筑图形
8.3 在等待时类型发生了变化
8.4 原型之痛
8.5 原型在什么地方会失败
8.6 不需要按回车键就能得到一个字符
8.7 用C语言实现有限状态机
8.8 软件比硬件更困难
8.9 如何进行强制类型转换,为何要进行类型强制转换
8.10 轻松一下——国际C语言混乱代码大赛
第9章 再论数组
9.1 什么时候数组与指针相同
9.2 为什么会发生混淆
9.3 为什么C语言把数组形参当作指针
9.4 数组片段的下标
9.5 数组和指针可交换性的总结
9.6 C语言的多维数组
9.7 轻松一下——软件/硬件平衡
第10章 再论指针
10.1 多维数组的内存布局
10.2 指针数组就是Iliffe向量
10.3 在锯齿状数组上使用指针
10.4 向函数传递一个一维数组
10.5 使用指针向函数传递一个多维数组
10.6 使用指针从函数返回一个数组
10.7 使用指针创建和使用动态数组
10.8 轻松一下——程序检验的限制
第11章 你懂得C,所以C++不在话下
11.1 初识OOP
11.2 抽象——取事物的本质特性
11.3 封装——把相关的类型、数据和函数组合在一起
11.4 展示一些类——用户定义类型享有和预定义类型一样的权限
11.5 访问控制
11.6 声明
11.7 如何调用成员函数
11.8 继承——复用已经定义的操作
11.9 多重继承——从两个或更多的基类派生
11.10 重载——作用于不同类型的同一操作具有相同的名字
11.11 C++如何进行操作符重载
11.12 C++的输入/输出(I/O)
11.13 多态——运行时绑定
11.14 解释
11.15 C++如何表现多态
11.16 新奇玩意——多态
11.17 C++的其他要点
11.18 如果我的目标是那里,我不会从这里起步
11.19 它或许过于复杂,但却是惟一可行的方案
11.20 轻松一下——死亡计算机协会
11.21 更多阅读材料
附录A 程序员工作面试的秘密
附录B 术语表
· · · · · · (
收起)
评分
☆☆☆☆☆
整体化的一本书:从编辑,编译,链接,运行的整个过程的细致分析
评分
☆☆☆☆☆
無愧於名號!插草標賣身推薦,值得反覆重溫。
评分
☆☆☆☆☆
C语言学习顺序:《C Primer plus》、《C and Pointer》、《Expert C Programming》、《Advanced Programming in the UNIX Environment》。第一本提供C语言的overview,第二本着重讲指针,第三本内存编译相关外带指针复习(以及各种八卦Orz),第四本UNIX环境编程。另外推荐Coursera上的C Specialization from Duke University,除了mini-program本人都非常喜欢,课程设置合理,外带安利Drew的《All of Programming》(毕竟自己老师hhh)
评分
☆☆☆☆☆
略话痨。
评分
☆☆☆☆☆
1,各种黑历史真好看,八卦之火熊熊燃烧 2,讲了各种c的缺陷,推荐go用户好好体验,很多都在go里做了修正 3,内存跟指针那几章讲得很透彻
评分
☆☆☆☆☆
这本书提供了一些小程序,写起来很有意思 1)如果用C语言实现一个有限状态自动机 2)你能解析: int (*(*func)[5][6])[7][8]; int (*(*func[7][8][9])(int*))[5]; 的意思吗?如果不能的话,你有必要思考“C语言的声明解析遵循什么规则”。然后本书还告诉你如何编写一个C语言...
评分
☆☆☆☆☆
好久前就听说的好书,作者是曾经的SUN编译器小组的成员,真的介绍了很多C开发的实际经验. 书中花了3章的篇幅详细阐述指针,数组以及他们二者的关系,真的是C语言的精髓,C可是成也指针,败也指针阿. 声明也足足用了一章的空间,可见的有多么混乱的语法,要想读懂bt的声明语法,最好的办...
评分
☆☆☆☆☆
英文版的书是很容易懂的,但是翻译成中文就不是的了。 有2方面原因,1是翻译的差,2是语言自身的特性。 随便摘出来一段,做个对比,仔细读下就知道怎么回事了。 “Expert C Programming” -Peter Van Der Linden (7.8) This note is a formal non-working paper of the Pro...
评分
☆☆☆☆☆
这本书提供了一些小程序,写起来很有意思 1)如果用C语言实现一个有限状态自动机 2)你能解析: int (*(*func)[5][6])[7][8]; int (*(*func[7][8][9])(int*))[5]; 的意思吗?如果不能的话,你有必要思考“C语言的声明解析遵循什么规则”。然后本书还告诉你如何编写一个C语言...
评分
☆☆☆☆☆
接触C语言十几年了,这本书读过很多遍。平时自以为C语言很熟悉了,但是每次看这本书,还是能发现自己平时没有注意到的地方,和一些经典用法,所以这本书还是很值得收藏的。放在案头,闲暇之时,看看目录,对于感兴趣的章节翻来看看,读上一两个小时,还是很不错的。