热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

适合绝大多数人的C语言书单,你有看过吗(文末资源)

大家好,我是小麦,就在前几天,有几位老哥和我私聊,让我整理一份C语言经典书籍的书单,现在我把这个清单重新整理了

大家好,我是小麦,就在前几天,有几位老哥和我私聊,让我整理一份C语言经典书籍的书单,现在我把这个清单重新整理了一下,这里有零基础入门进阶提高的书籍,对每个阶段的学习都会有帮助,下面它来了。


关于C语言

先看C语言的历史;1973 年,KenThompson 和 DennisRitchie 在做系统内核移植开发时,感觉使用汇编语言很难实现。后来决定使用一种称为 BCPL的语言进行开发,在开发过程中,他们在 BCPL 的基础上做了进一步的改进,推出了 B 语言(取 BCPL 第一个字母)。

后来发现使用 B 语言开发的 UNIX 内核,还是无法达到他们的预期要求,于是在 B 语言的基础上,做了进一步的改进,设计出了具有丰富的数据类型,并支持大量运算符的编程语言。改进后的语言较B语言有质的飞跃,1970年左右,取名为 C 语言,并使用 C 语言成功重新编写了 UNIX内核。

这也是为什么UNIX的时间戳默认是从1970年1月1日开始;

C/C++无处不在,到底能做哪些事情呢?


  • 大多数操作系统内核都是用C编写的,包括但不限于Windows,Linux,Mac,iOS,Android等。

  • 现代浏览器也是用C/C++编写的。像Chrome,Firefox等。

  • 现代游戏引擎是用C/C++编写的,例如Unity3D,虚幻引擎,cocos2d-x等。

  • 编程语言的编译器和解释器也是用C/C++实现的。

下面给大家推荐基本C语言学习非常优秀的书籍。


  • C Primer Plus

  • Linux C编程一站式学习

  • C 和指针

  • C 程序设计语言

  • 深入理解C指针

  • C 专家编程

  • C 陷阱与缺陷

  • C 语言的科学和艺术

  • C 语言程序设计现代方法

  • C 语言接口与实现

  • 数据结构与算法分析——C语言描述

  • UNIX环境高级编程(第3版)

  • Linux程序设计


C Primer Plus

图片

《C Primer Plus(第5版)(中文版)》是C语言书最好的入门书籍之一,0基础完全可以。
可以说是满分入门书籍,内容循序渐进,这本书重要的不止是让你学会了C语言,更重要的是能够锻炼你的编程思想,这对以后的学习很有帮助。
遇到看不懂的地方多看几遍,再看不懂就先跳过,有时候一回头就突然懂了。
如果想把C当作吃饭的技能,除了这本书,还必须要再补一下数据结构和算法方面的知识。


Linux C编程一站式学习

图片

本书有两条线索:


  • 一条线索是以Linux平台为载体全面深入地介绍C语言的语法和程序的工作原理;

  • 另一条线索是介绍程序设计的基本思想和开发调试方法。

本书分为两部分:


  • 第一部分讲解编程语言和程序设计的基本思想方法,让读者从概念上认识C语言;

  • 第二部分结合操作系统和体系结构的知识讲解程序的工作原理,让读者从本质上认识C语言。

本书适合做零基础的初学者学习C语言的第一本教材,帮助读者打下牢固的基础。

有一定的编程经验但知识体系不够完整的读者也可以对照本书查缺补漏,从而更深入地理解程序的工作原理。

本书对于C语言的语法介绍得非常全面,对C99标准做了很多解读,因此也可以作为一本精简的C语言语法参考书。


C 和指针

图片

这本书和《专家编程》《C缺陷和陷阱》可以并称C语言(进阶书)三杰;

这本书提供与C语言编程相关的全面资源和深入讨论,由浅入深;

它涵盖了C语言的全部内容,特别注重指针的讲解,除了头尾的几章,指针的话题几乎是贯穿了全书。

正是指针使得C语言如此之强大,所以要学习C语言的精髓,就是要精通指针!


C 程序设计语言

图片

在计算机发展的历史上,没有哪一种程序设计语言像C语言这样应用广泛。

本书作者是C语言之父,相当经典,“hello,World"程序就是由本书首次引入的。

不过读这本书,我们得有一些unix like系统的操作经验,需要知道文件描述符,输入输出流,重定向,管道以及”anything is file“等在unix世界里这些归为常识的概念;

这些离我们这些在windows的世界里长大的一辈太远。


深入理解C指针

图片

深入理解C指针和内存管理,提升编程效率!这是一本实战型图书,通过它,读者可以掌握指针动态操控内存的机制、对数据结构的增强支持,以及访问硬件等技术。


C 专家编程

图片

虽然是技术类书籍,但是作者很幽默,书里面八卦比较多,趣味性比较强;

同时也展示了优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。

对于有一定经验的C程序员会很有帮助;

对于C语言功底深厚的程序员,本书可以帮助他们站在C的高度了解和学习C++。


C 陷阱与缺陷

图片

作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。

写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。

本书适合有一定经验的C程序员阅读学习,即便你是C编程高手,本书也应该成为你的案头必备书籍。

正如书上所说,“本书所揭示的知识,至少能够帮助你减少C代码和初级C++代码中90%的Bug”,我觉得这并不夸张。


C 语言的科学和艺术

图片

《C语言的科学和艺术》是一本C语言经典教材,强调软件工程和优秀的程序设计风格。

此外,读者还可以从书中学习到ANSIC的基础知识,这些内容已经成为计算机行业的标准。

作者的写作风格使得书中深奥的概念变得易于理解和引人入胜。

这本书集中讨论库和抽象的用法,这是当代程序设计技术中最基本的知识。

使用库来隐藏C语言的复杂性,更加突出主题,使读者可以较好地掌握每一个主题的精髓。

然后,进一步给出每个库的底层实现,较好地展示了库自身的抽象威力。


C 语言程序设计现代方法

图片

《C语言程序设计现代方法》最主要的一个目的就是通过一种“现代方法”来介绍C语言,实现客观评价C语言、强调标准化C语言、强调软件工程、不再强调“手工优化”、强调与c++语言的兼容性的目标。《C语言程序设计现代方法》分为C语言的基础特性。C语言的高级特性、C语言标准库和参考资料4个部分。每章都有“问与答”小节,给出一系列与本章内容相关的问题及其答案,此外还包含适量的习题。


C 语言接口与实现

图片

《C语言接口与实现:创建可重用软件的技术》概念清晰、实例详尽,是一本有关设计、实现和有效使用C语言库函数,掌握创建可重用C语言软件模块技术的参考指南。

书中提供了大量实例,重在阐述如何用一种与语言无关的方法将接口设计实现独立出来,从而用一种基于接口的设计途径创建可重用的API。


数据结构与算法分析——C语言描述

图片

本书是《Data Structures and Algorithm Analysis in C》一书第2版的简体中译本。

原书曾被评为20世纪顶尖的30部计算机著作之一,作者Mark Allen Weiss在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评.已被世界500余所大学用作教材。

在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。


UNIX环境高级编程

图片

《UNIX环境高级编程》被誉为UNIX编程“圣经”。

经典中的经典。不过看这本书的前提是你熟悉linux,哪怕不是使用linux接口编程,至少要用过,了解shell,gcc,vim。所以适合有一些基础的读者。


Linux程序设计

图片

时至今日,Linux系统发展越来越成熟,因为具备跨平台、开源、支持众多应用软件和网络协议等优点,它得到了各大主流软硬件厂商的支持,也成为广大程序设计人员理想的开发平台。

本书是Linux程序设计领域的经典名著,以简单易懂、内容全面和示例丰富而受到广泛好评。

中文版前两版出版后,在国内的Linux爱好者和程序员中也引起了强烈反响,这一热潮一直持续至今。

👇👇👇





公众号后台回复【C语言】上述书单中的书籍,即可下载;或者您有更好的经典书籍推荐或者有好的想法,欢迎积极讨论。

图片

推荐好文  点击蓝色字体即可跳转

☞ 被坑10万!竞业协议到底有多少坑?

☞ 当心!别再被大小端的问题坑了图片

☞ 一文彻底搞懂C指针!

☞ 我去!你居然还不会用Git!


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
  • 第四讲ApacheLAMP服务器基本配置Apache的编译安装从Apache的官方网站下载源码包:http:httpd.apache.orgdownload.cgi今 ... [详细]
  • 原文地址http://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/最开始时 ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • 【技术分享】一个 ELF 蠕虫分析
    【技术分享】一个 ELF 蠕虫分析 ... [详细]
  • CentOS7系统目录LINUX有四种基本文件系统类型普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、 ... [详细]
  • 第三周读书笔记《程序员的自我修养》  计划对这本书是精读,这周读了3,4章。第三章目标文件里有什么  首先介绍了目标文件的格式,Windows下是pe-coff, ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
author-avatar
醇情咖啡_799
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有