㈠ 求c语言初学者书籍推荐
1.基础(C语言入门,初学,编程基础)
《C语言程序设计:现代方法》(第2版)
《深入理解计算机系统》(修订版或第2版)
《C语言程序设计》(第2版)
《程序员修炼之道》
《C和指针》
《C primer plus》(入门首选)
《高质量程序设计指南》(一定要看)
《从问题到程序》(最佳高校教材)
2.内核/驱动
《Linux内核设计与实现》(第3版)
《Linux设备驱动程序》(第3版)
《深入Linux内核架构》
《Linux C编程一站式学习》
3.应用
《UNIX环境高级编程》
《UNIX网络编程》
4.进阶
《C陷阱与缺陷》
《C专家编程》
《C语言程序设计》K&R版
《C语言解惑》
《你必须知道的495个C语言问题》
《C语言参考手册(原书第5版)》
《C语言接口与实现》
《C语言的科学和艺术》
《数据结构与算法分析C语言系列》
《Linux程序设计》
《现代编译原理》
《重构-改善既有代码的设计》
《老码识途-从机器码到框架的系统观逆向修炼之路》
《C语言进阶》
《实用C语言编程》
C语言从入门到进阶书籍推荐吐血整理大全(含网盘下载链接)
㈡ c语言入门买什么书好
1、基础(C语言入门,初学,编程基础)
《C语言程序设计:现代方法》(第2版)(C
Programming: A Modern Approach, 2nd Edition, K.N.King)
《深入理解计算机系统》(修订版或第2版)(Computer Systems: A Programmer's Perspective,
Randal E. Bryant et al),阅读建议
《C语言程序设计》(第2版)(The
C Programming Language, Brian W. Kernighan & Dennis M.
Ritchie)
《程序员修炼之道》(The
Pragmatic Programmer: From Journeyman to master, Andy
Hunt & Dave Thomas)
2、内核/驱动
《Linux内核设计与实现》(第3版)(Linux
Kernel Development, 3rd Edition, Robert Love)
《Linux设备驱动程序》(第3版)(Linux
Device Driver, 3rd Edition, Jonathan Corbet et al)
《深入Linux内核架构》(Professional
Linux Kernel Architecture, Wolfgang Mauerer)
3、应用
《UNIX网络编程》(Unix
Network Programming, W. Richard Stevens)
《UNIX环境高级编程》(Advanced
Programming in the UNIX Environment, W. Richard Stevens)
4、进阶
《C陷阱与缺陷》(C Traps and Pitfalls, Andrew Koenig)
《C专家编程》(Expert C Programming, Peter
van der Linden)
《ARM嵌入式系统开发:软件设计与优化》(ARM
System Developer's Guide: Designing and Optimizing System Software,
Andrew Sloss et al)
㈢ 学习C语言有什么书适合新手看
学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味着你需要经历艰苦的过程。
一、要读就读好书,否则不如不读
所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的C语言课本;而幸运的是,你还可以再次选择。
大名鼎鼎的谭浩强教授出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,很多学校都会推荐这本书作为C语言课本。虽然本人的名字(谭浩宇)跟教授仅仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以网络一下:)
Kernighan和 Ritchie的《The C Programming Language》(中译名《C程序设计语言》)堪称经典中的经典,不过旧版的很多内容都已过时,和现在的标准C语言相去甚远,大家一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面俱到,所以手边常备一本《C语言参考手册》是十分必要的。《C语言参考手册》就是《C Reference Manual》,是C语言标准的详细描述,包括绝大多数C标准库函数的细节,算得上是最好的标准C语言的工具书。顺便提一句,最新的《C程序设计语言》是根据C89标准修订的,而《C语言参考手册》描述的是C99标准,二者可能会有些出入,建议按照C99标准学习。还有一本《C和指针》,写得也是相当地不错,英文名是《Pointers on C》,特别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果你曾经学过C语言,有那么一些C语言的基础但又不是很扎实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。
如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。首先是《C Traps and Pitfalls》(中译名《C陷井与缺陷》),很薄的一本小册子,内容非常非常地有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多C语言的缺陷都已被改进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。
切记一个原则,不要读自己目前还看不懂的书,那是浪费生命。如果你看不懂,那你一定是缺失了某些必需基础知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述的这些内容的书籍。把基础知识补充完毕再回头来学习,才会真正的事半功倍。
二、Unix/Linux还是Windows,这是个很大的问题
不同的编程环境会造就出不同思维的程序员。Windows的程序员大多依赖集成开发环境,比如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几个基本的Visutal C++工具栏按钮就可以开始写Hello, World!了,而在Unix下,你需要一些控制台操作的基本知识。有人也许认为Unix的环境更简洁,但习惯的力量是很大的,大家都很熟悉 Windows的基本操作,而为了学习C语言去专门装一个Unix系统,似乎有点不划算。
对于一个只懂得Windows基本操作、连 DOS是什么都不知道的新手而言,尽快做一些有趣而有意义的事情才是最重要的。用C语言写一个小程序远比学习ls、cat等命令有趣,况且我们要专注于C 语言本身,就不得不暂时忽略一些东西,比如编译链接的过程、Makefile的写法等等等等。
所以我建议初学者应该以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作为主要的学习环境,而且千万不要在IDE的使用技巧上过多纠缠,因为今后你一定要转向Unix环境的。Visual C++ 6.0使用很方便,调试也很直观,但其默认的编译器对C标准的支持并不好,而Dev C++使用gcc编译器,对C99的标准都支持良好。使用顺带提一下,很多大学的C语言课程还在使用Turbo C 2.0作为实验环境,这是相当不可取的,原因其一是TC 2.0对C标准几乎没有支持,其二是TC 2.0编译得到的程序是16位的,这对今后理解32位的程序会造成极大的困扰(当然,用djgpp之类的东西可以使TC 2.0编译出32位程序,不过那过于复杂了)。
等你学完一本C语言的教材,你一定要转向Unix平台继续学习,几乎所有的C语言高级教程都是基于Unix平台的(比如《C专家编程》)。转变的过程是痛苦的,你需要面对的是各种纷繁复杂的命令,完全不同于Windows平台的思考方式,但是这种痛苦是值得的。Unix与C是共生的,Unix的思考方式和习惯更加符合C语言的思考方式和习惯。在Unix下,你可以找到无数优秀的源代码供你尽情阅读,你可以方便地查看某个库函数的联机手册,还可以看到最优秀的代码风格(说到代码风格,我会专门写一篇文章详细叙述)。
归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。
三、万事俱备,你就是东风
书已选定,环境配置完成,正所谓万事俱备,只欠你自己的努力了。请从书的前言开始,仔细地阅读手头的教材,很多人看书喜欢直接从第一章开始看,这是错误的做法。前言是作者对整本书的大体介绍,作者一般会告诉你需要什么基础才能够顺利阅读本书,这可以帮助你检验自己的基础知识是否已经具备。看完前言,还要浏览一下目录,了解一下书的整体结构,顺便给自己安排一下学习计划。
学习C语言,必需注意每一个细节,书上的例子代码一定要自己亲自敲一遍,编译执行输出都跟书上说的一致才能算是学完了一个例子,如果不一致,就要仔细找原因。出了书本上有的例子,自己还要“创造”一些例子,比如学习运算符优先级的时候,可以写几个相同的表达式,在不同的位置加上括号,看看有哪些不同的行为,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的书上的例子以及改造之后的例子,还有自己“创造”的例子,都应该仔细地归类保存,并且要在源代码中写上简短的注释,阐述这个例子的意图。
例子之后就是习题了,我建议初学者把所有的习题都独立做一遍,然后对照答案的代码,看看自己的代码有那些不足,再试着修改自己的代码。很多人不重视习题,这是极大的错误,因为作者通常会在习题中说明一些重要的道理,而不是单纯地检验前面的知识。
也许你认为这样学习太慢,其实不然。学得细致就不用走回头路,等你学到后面才发现自己前面没搞清楚,那才是真的得不偿失。一般说来,整本书读完,你应该完成数千行乃至上万行的代码,无论是原封不动照抄书上的,还是自己心血来潮写就的,都是今后继续学习的一笔财富。以我自己举例,阅读《Windows核心编程》时(我只阅读了3/4的内容),除了抄书上的代码,还自己写了很多例子,一共有5574行(用unix下的wc工具统计),时隔多日,我早已记不清 Windows的系统编程了,但只要花几分钟翻出以前的代码看看,便会重新了然于胸。所谓好记性不如烂笔头,就是这个道理。
仔细读书、认真抄写源代码、独立完成习题外加更进一步的实验,最后将所有的代码留下,成为自己的经验和财富,绝对的辛苦,也绝对的事半功倍。当然,这种方式只适合学习需要精通的技术,如果不是学习C语言,你还要具体情况具体分析。
写到最后,还有非常非常重要的一点没有提及──代码风格,从最开始学习就必须强迫自己模仿最优秀的代码风格。因为代码风格太重要内容也太多,我会用专门的一篇文章来详细讨论,请大家关注《程序员之路──关于代码风格》。
㈣ 初学者学C语言,应该看什么书好
我以前也是自学的,感觉还是看纸质的书比较好,而且以一本书为主,也看看其他人的书,最重要的是自己必须的编几个稍微复杂点的程序,这样对c语言的理解才会更深一点,以前的不了解之处也会有茅塞顿开之感
㈤ C语言初级入门看什么书
我就是初级的,老师说只要把谭浩强的看明白学明白就行,这本书好入门。现在是第四版的,书店买的是红色的皮的。希望我的回答对你有帮助
㈥ c语言入门自学书籍都有哪些
c语言入门自学书籍都有:《C程序设计》、《C#图解教程》、《C语言入门经典》。
1、《C程序设计》
如果你只是想要学习C语言来考个计算机等级证书,仅此而已,那么《C程序设计》对于考级来说绝对是本好书。
3、《C语言入门经典》
《C语言入门经典》例子简单生活化,而且每个例子分析很细。章节安排合理,章末的例子还特别注重思路的引导,而且分析起来特别有成就感。
㈦ C语言初学者(自学),应该用什么书
推荐四本适合初学者的书籍
《C和指针》
《C primer Plus》
《C陷阱与缺陷》
《C程序设计》
㈧ C语言入门用什么书
为什么一定要让人走弯路呢,谭浩强那本虽然简单易懂,我们学校当初也用这本,但我真心不觉得好在哪里,只跟你说怎么用,但很多地方都没解释为什么这样用,为什么不能那样用。很多新手看完这本,被误导而不自知,这里就不说了。至于风格嘛,感觉太老,不注重细节,而且还不与时俱进,又不像K&R写的,是很久以前写的,停止更新了。多次出新版,却基本不修改错误和新时代风格算什么意思。
那本跟TCLP完全不能比,我入门就看这本,不过对新人的确有难度。TCLP就是yuwenchenglo说的那本,中文名《C程序设计语言》。C语言之父写的,对C的核心都讲的不错,就是太薄了点。当然这本里也有一些老风格,比如main(){} 现在被C99标准禁用了,注意下就可以了,毕竟这本书有年头了,旧时代的风格不作评论。不过很多地方还是讲的不错的。你看完这本(或者看的差不多就可以了),再回去看那本,自己对比一下就知道了。
如果你只想学C的话(不包括C++),可以看看《C语言参考手册》,作为工具书相当不错,介绍了大部分的C语法、C和C++的区别,还有C的标准库(不是C++的STL)。
你说的那本《C语言入门经典》,也不错,风格上和现代风格相符,也比较严谨。其他的也可以看看《C Primer Plus》,这本比较厚,内容比较多一点,是非常不错的C教材。
提高的话,可以看看《C陷阱和缺陷》、《C专家编程》等等,多了解下C的缺陷什么的。
至于其他的,比如lshmusic说的,等你把基础打好后再看吧,刚开始不要学的太急。如果想学windows,最好先看Charles Petzold的《windows程序设计(第五版)》,再来看《windows核心编程》。前者则针对广泛的windows程序,后者主要针对windows系统,如多线程、线程池等等,最好有操作系统的知识。如果是Linux,可以看看W.Richard Stevens《Unix高级环境编程》。这几本都是各环境下的编程圣经,非常经典。不过毕竟跟实际环境相关,最好能多了解点系统方面的知识,比如多线程、线程池等等知识,在实际编程环境中经常会遇到。
这里有篇谭和K&R的TCLP的文章,可以做个参考:
http://hi..com/perfectbo/item/e0a0b917f7a9555f2a3e2201
——————————————————
如果只想2选一的话,我觉得《入门经典》不错,我家里有一本,但前面那本我的确没看过,所以我不做评述,都看过的人,可以说一下。
㈨ c语言入门书籍
1) 《C语言小白变怪兽》
既适合对计算机一窍不通的小白,也适合有编程基础的读者,还可以用来进阶。
《C语言小白变怪兽》是一套网络教程,发布在C语言中文网,由站长亲自编写,这套教程最大的特点是通俗易懂,深入浅出,既适合小白入门,也适合后期进阶。本人就是读了这套教程以后才对C语言有了天翻地覆的认识,觉得以前学得都是垃圾。。。
这本书至今还在不断更新,我认为这是C语言入门的首选教材,吐血推荐,经典中的经典!!!
2) 《啊哈C语言》
适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。
这本书语言幽默,生动形象,通俗易懂,给人耳目一新的感觉,但是这本书非常浅显,并不深入,所以适合纯小白入门,找到门以后也就扔了。
这本书着重于语言艺术,针对纯小白下足了功夫,小学生坐在马桶上都能学会编程。说实话,我非常欣赏作者的创意和用心,国内像这样写书的少之又少,入门的书就应该是这个样子。
3) 《明解C语言》
适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。
日本人的作品,最大的特点是插图很多,生动有趣,让人一目了然。
其实真正的《明解C语言》一共有三部,分别是《明解C语言·入门篇》《明解C语言·中级篇》《明解C语言·实践篇》,遗憾的是图灵公司目前只翻译了入门篇和中级篇,还没有翻译实践篇。中级篇网上还没有 PDF 下载资源
4) 《C Primer Plus》
适合有编程基础的读者,对计算机一窍不通的纯小白请忽略。
畅销 30 余年的C语言入门经典书籍,至今无人能撼动它的地位,它是最符合C语言标准的书籍,作为一名C语言程序员,不收藏一本都觉得自己很水。
但是对于没有计算机基础的小白,这本书就有点蛋疼了,信息量大,涉及的知识面广,书也比较厚,得有耐心才行。
如果你是纯小白,还是推荐阅读《C语言小白变怪兽》《啊哈C语言》《明解C语言》这几本书,等有了一点C语言基础,知道C语言大概讲了什么东西了,再来读《C Primer Plus》收获就非大了,你会感受到满满的干货。
5) 《C程序设计语言,The C Programming Language》
C语言创始人丹尼斯·里奇(Dennis MacAlistair Ritchie)的着作,和《C Primer Plus》并驾齐驱,很难分出伯仲,这两本书都是一样的优秀,都是C语言程序员必须收藏的。
但是,《C程序设计语言》也不太适合纯小白,还是推荐阅读《C语言小白变怪兽》《啊哈C语言》《明解C语言》这几本书,等有基础了再回来看。
《C程序设计语言》和《C Primer Plus》的难度差不多,信息量也差不多,有很多人纠结读哪一本,我的建议是任选其一即可,或者,看了一本以后,另外一本大概浏览一下。
㈩ C语言入门学习应该买哪些书籍
如果想以后深入的话 不推荐国内的书(谭浩强的过分注重语法细节,而且讲得不深入,代码风格也不好) 如果只是学一下,以后没想过要深入编程的话 可以看 谭的书(大学都用这书)
国外的经典 我推荐《c primer plus》 这本600页左右 内容注重大体,不纠缠于语法细节(过于注重语法细节,是学语言的大忌,其实任何学问也是如此,先从模仿开始学习)
这本书能够让你充分了解,编程的真正过程,理解更深入(并不是语法细节的纠缠,而是原理的理解)。
看完这本 看《c programming language》 C之父的杰作 必看!(但不适合入门,有点难度)
这样下来你已经对于c 语言能够 基本应用了,但是还有一些问题(如指针的应用,和一些细节忽视)
该这本了《c缺陷和陷阱》 讲述了很多 编程时遇到的问题,是你的编程技术更加精湛。
这个时候 《数据结构》 是必须看的啦 (算法是程序的灵魂)
下面 就 可以做一些 简单的项目了 什么 贪吃蛇啦 五子棋啦 管理系统啦 都可以做
项目会大大提高你的 编程水平。
如果想做 应用软件开发的 可以学习 C++ 或者 JAVA (比较适合上层的开发,带界面那种)
用C做界面是很痛苦的,也是不切实际的,基本没人这么做。
编程就该照这个顺序学下来。(不过也可以 直接学习 C++ 或者 JAVA,他们并不以C为基础,只是C比较适合入门,了解编程逻辑而已,如果不是写系统软件的,很少用C来工作的,基本都是JAVA或者C++ VB 这类较高级的语言)