
《C语言程序设计:现代方法》(第2版)
《深入理解计算机系统》(修订版或第2版)
《C语言程序设计》(第2版)
《高质量程序设计指南》(一定要看)
《从问题到程序》(最佳高校教材)
《Linux内核设计与实现》(第3版)
《Linux设备驱动程序》(第3版)
《你必须知道的495个C语言问题》
《C语言参考手册(原书第5版)》
《C语言的科学和艺术》
《数据结构与算法分析C语言系列》
《重构-改善既有代码的设计》
《老码识途-从机器码到框架的系统观逆向修炼之路》
先看《C Primer Plus中文版》(如果你英语好,可以看英文版《C Primer Plus 》)推荐从经典入手。推荐的话,这本书上的习题是有答案的,可以练练。
如果着急的话可以看谭浩强的《C语言程序设计》,看完基本小程序会写,算入门了。
进阶的书去看《The C Programming Language》,俗称C语言圣经。
再进一步就是多写代码的经验和根据需要学习相应的C语言(比如Object—C,写Apple App用的)
至于你选的其他的书都可以先不看,其中《21天学通c(第三版)》《C语言编程宝典》《你必须知道的495个C语言问题 》基本是用来诓骗新手的商业书,噱头比较重,有用的不多,重复性很高。
《C和指针》《C陷阱与缺陷》是比较好的书,但是有点高阶了,如果不是研究C语言的话基本上用不到,除非是公司里的C语言工程师才看。
c语言本身语法并不复杂。单从语言复杂度看算简单的,比起面向对象语言增加的那些复杂概念知识来讲,c作为面向过程语言的代表,它显得十分简练。但c语言非常接近低层,所以凡属重量级的基础软件基本都由用c开发。作为基础软件的代表,操作系统均由c语言开发,c永远不会过失。简单并不意味着弱小,相反简单而灵活让c对各种硬件资源操控非常强捍有效,因此c成为公认的系统级别的开发语言,地位至今无法捍动。
一本基础,一本算法就差不多入了门。工作中相关的知识就要无限拓展了。仅以嵌入式编程为例,每次接触的硬件都不同,新硬件也很多,加上电路设计,所以很难说精通。恐怕要学一辈子。
掌握C语言并不意味着一定能看懂其他编程语言,因为每种编程语言都有其独特的语法和特性。但是,C语言是一种非常基础的编程语言,学会了C语言可以帮助你理解其他语言的基本结构和计算机如何执行程序。比如,掌握了C语言,可以帮助你更好地理解高级编程语言如Python、JavaScript等背后的概念。你将能够理解这些语言是如何在计算机上运行并转化为机器语言的。同时,学会了C语言可以帮助你更好地理解内存管理、指针等概念,这些概念在其他许多编程语言中都有使用,例如C++、Java和JavaScript等。然而,要真正理解和使用其他编程语言,还需要学习和理解那些语言的特定语法、特性以及相关的库和框架。所以,虽然掌握C语言是一个很好的起点,但要真正看懂其他编程语言还需要额外的学习和努力。