学习C语言用什么书比较好?

Fairchild_Lhy 2014-09-07 08:55:32
我有一定的C++和JAVA的编程基础,对指针和面向对象的技术比较熟悉了,但是却一直没有系统的学习过C。

最近上了操作系统原理的课,课程要求能看懂一些简单的系统内核源代码,而这个源代码就是C与汇编语言的混合。

粗略地看了下entry.S文件,看上去感觉有很多地方看不明白,于是想系统的学习一下C。

希望大家能推荐一点C语言的相关书籍,最好能结合我现在的状况,就是不需要写的太浅显的书,也不能太难上手,基本上书的深入程度要能达到这样一个效果:
就是我看了以后,能较快的看懂一个简单的操作系统的内核源代码(最好是专门针对这个来讲的书籍)。
求推荐好书,谢谢了~
...全文
564 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
竹影半墙 2014-09-08
  • 打赏
  • 举报
回复
引用 8 楼 lovesmiles 的回复:
把下面这些书看完就不用愁了 2. C程序设计语言 作者 : Brian W.Kernighan/Dennis M.Ritchie 出版社 : 清华大学出版社 评语 : 第1本 《C程序设计语言》 Brian W. Kernighan / Dennis M. Ritchie 这本书又称为 R&K C,还有谁能比C语言之父对C语言更有发言权的呢?推荐看英文版。你会惊讶于在短短不到200页的篇幅内,这两位牛人将C语言描述的这么清晰。即使不专门学C语言的人也可以拿出来翻翻 3. C陷阱与缺陷 作者 : 凯尼格 出版社 : 人民邮电出版社 评语 : 第2本 《C陷阱与缺陷》Andrew Koenig Andrew Koenig的成名作,能帮助初学者减少90%的错误。一些错误(比如赋值符、运算符优先级等)还是不时的会在自己的程序里出现,只是已经打过预防针了,很容易发现。另外作者写了一本《Accelerated C++》,据说是C++的最佳入门书,狠赞!! 4. C专家编程 作者 : Peter Van Der Linden 出版社 : 人民邮电出版社 评语 : 第3本 《C专家编程》(LinDen,P.V.D) 一看书名就知道这丫不能拿来入门用的,第一次看的时候够折磨大脑的。作者声称,编程的唯一原因是因为乐趣。相比之前的几本书,这本书还介绍C语言运行的环境,更全面地考察了C语言。深入分析了C语言中一些容易混淆的概念,如复杂的声明和定义、数组和指针、链接和运行时库、内存等。很值得一读。 顺便一提:链接库可参考《深入理解计算机系统》的动态链接库一章,写得更易读 5. 编程精粹 作者 : Steve Maguire 出版社 : 人民邮电出版社 评语 : 第4本 《编程精粹:编写高质量C语言代码》 《Writing Solid Code》 Steve Maguire 这是我读到C语言书中最惊叹的一本,尽管写出没有bug的程序不太可能,但按照作者提供的方法,可以离这个目标很近。本书关注的更多是怎么使用C语言开发工业级产品的问题。 这本书源自作者十几年不断的追问自己两个简单的问题: 1)怎样才能自动地查出这个错误? 2)怎样才能避免这个错误? “他的另一部名著Debugging the Development Process(中文版《微软 6. C Interfaces and Implementations 作者 : David R. Hanson 出版社 : Addison-Wesley Professional 评语 : 第5本 《C Interfaces and Implementations》 David R. Hanson 这本据说为唯一一本能和R&K C并驾齐驱的书,可惜中文版众口一致说太烂,无处可载电子版,影印版跳票多年,原版USD 54.99实在承受不起,囊中羞涩,奈何奈何。想念多年,至今不能一睹芳容,深以为憾。 7. C标准库 作者 : P. J. Plauger 出版社 : 人民邮电出版社 评语 : 前面5本差不多够了,另外推荐两本,精力过剩的可以翻翻 第6本 《C标准库》P. J. Plauger 本书介绍C标准库的实现,书中有较为详尽的代码。虽然这本书年代久远,现在的实现肯定和以前也有差别,但是还是很有参考价值,特别是对C标准库的实现有兴趣的人。中文版太贵,英文电子版看得太累,还是以后有地方借的时候再继续看。
lou zhu kan le ji ben le ?
Fairchild_Lhy 2014-09-08
  • 打赏
  • 举报
回复
引用 10 楼 Zidane_2014 的回复:
最近在看《C和指针》,感觉不错。 适合有一定编程经验的人学习。
这个我看完了的。。。
Zidane_2014 2014-09-08
  • 打赏
  • 举报
回复
最近在看《C和指针》,感觉不错。 适合有一定编程经验的人学习。
勤奋的小游侠 2014-09-07
  • 打赏
  • 举报
回复
把下面这些书看完就不用愁了 2. C程序设计语言 作者 : Brian W.Kernighan/Dennis M.Ritchie 出版社 : 清华大学出版社 评语 : 第1本 《C程序设计语言》 Brian W. Kernighan / Dennis M. Ritchie 这本书又称为 R&K C,还有谁能比C语言之父对C语言更有发言权的呢?推荐看英文版。你会惊讶于在短短不到200页的篇幅内,这两位牛人将C语言描述的这么清晰。即使不专门学C语言的人也可以拿出来翻翻 3. C陷阱与缺陷 作者 : 凯尼格 出版社 : 人民邮电出版社 评语 : 第2本 《C陷阱与缺陷》Andrew Koenig Andrew Koenig的成名作,能帮助初学者减少90%的错误。一些错误(比如赋值符、运算符优先级等)还是不时的会在自己的程序里出现,只是已经打过预防针了,很容易发现。另外作者写了一本《Accelerated C++》,据说是C++的最佳入门书,狠赞!! 4. C专家编程 作者 : Peter Van Der Linden 出版社 : 人民邮电出版社 评语 : 第3本 《C专家编程》(LinDen,P.V.D) 一看书名就知道这丫不能拿来入门用的,第一次看的时候够折磨大脑的。作者声称,编程的唯一原因是因为乐趣。相比之前的几本书,这本书还介绍C语言运行的环境,更全面地考察了C语言。深入分析了C语言中一些容易混淆的概念,如复杂的声明和定义、数组和指针、链接和运行时库、内存等。很值得一读。 顺便一提:链接库可参考《深入理解计算机系统》的动态链接库一章,写得更易读 5. 编程精粹 作者 : Steve Maguire 出版社 : 人民邮电出版社 评语 : 第4本 《编程精粹:编写高质量C语言代码》 《Writing Solid Code》 Steve Maguire 这是我读到C语言书中最惊叹的一本,尽管写出没有bug的程序不太可能,但按照作者提供的方法,可以离这个目标很近。本书关注的更多是怎么使用C语言开发工业级产品的问题。 这本书源自作者十几年不断的追问自己两个简单的问题: 1)怎样才能自动地查出这个错误? 2)怎样才能避免这个错误? “他的另一部名著Debugging the Development Process(中文版《微软 6. C Interfaces and Implementations 作者 : David R. Hanson 出版社 : Addison-Wesley Professional 评语 : 第5本 《C Interfaces and Implementations》 David R. Hanson 这本据说为唯一一本能和R&K C并驾齐驱的书,可惜中文版众口一致说太烂,无处可载电子版,影印版跳票多年,原版USD 54.99实在承受不起,囊中羞涩,奈何奈何。想念多年,至今不能一睹芳容,深以为憾。 7. C标准库 作者 : P. J. Plauger 出版社 : 人民邮电出版社 评语 : 前面5本差不多够了,另外推荐两本,精力过剩的可以翻翻 第6本 《C标准库》P. J. Plauger 本书介绍C标准库的实现,书中有较为详尽的代码。虽然这本书年代久远,现在的实现肯定和以前也有差别,但是还是很有参考价值,特别是对C标准库的实现有兴趣的人。中文版太贵,英文电子版看得太累,还是以后有地方借的时候再继续看。
Fairchild_Lhy 2014-09-07
  • 打赏
  • 举报
回复
引用 5 楼 truelance 的回复:
c++都会了,没必要专门看c的书。 如果真想看的话,可以下载K&R的<The C Programming Language>第二版和<ANSCI C Standard>99版/2011版都可以。这些是当手册或字典查的,不用专门看。 另外可以找一本<C专家编程>看一遍,了解一下。
对于C我觉得有点不放心,因为我看到一些陌生的用法和关键字 比如: .extern xxx .global .long 前面加点的这种用法,还有就是像 struct 啊,volatile啊这类在C++用的比较少的东西。。。 所以刚一看就觉得有好多不懂,就比较怵。。。 不过因为操作系统内核好像都是用C开发的,所以觉得这个语言应该比较高深,想要去深入了解下。非常感谢你的推荐。
Fairchild_Lhy 2014-09-07
  • 打赏
  • 举报
回复
引用 4 楼 jerry_dqh 的回复:
不需要了,但是要学习一下计算机原理,简单看一下汇编原理
好的,汇编原理我学过的。 对于C我觉得有点不放心,因为我看到一些陌生的用法和关键字 比如: .extern xxx .global .long 前面加点的这种用法,还有就是像 struct 啊,volatile啊这类在C++用的比较少的东西。。。 所以刚一看就觉得有好多不懂,就比较怵。。。
熊熊大叔 2014-09-07
  • 打赏
  • 举报
回复
c++都会了,没必要专门看c的书。 如果真想看的话,可以下载K&R的<The C Programming Language>第二版和<ANSCI C Standard>99版/2011版都可以。这些是当手册或字典查的,不用专门看。 另外可以找一本<C专家编程>看一遍,了解一下。
碼上道 2014-09-07
  • 打赏
  • 举报
回复
不需要了,但是要学习一下计算机原理,简单看一下汇编原理
Fairchild_Lhy 2014-09-07
  • 打赏
  • 举报
回复
引用 2 楼 truelance 的回复:
《linux内核源代码情景分析》 《linux内核完全注释》 《linux内核完全剖析》 都可以
网上找到了PDF,看了下感觉还行,但是真的不用去系统的学习下C语言吗?
熊熊大叔 2014-09-07
  • 打赏
  • 举报
回复
《linux内核源代码情景分析》 《linux内核完全注释》 《linux内核完全剖析》 都可以
从来不作 2014-09-07
  • 打赏
  • 举报
回复
c++都学过了,c肯定可以看懂啊,直接看源码吧

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧