保姆级零基础 C 语言学习路线,万字总结!

2023-05-16

从大学接触 C 语言编程,工作之后一直从事互联网 C/C++ 后台开发工作,粗略算下来有 10 多年经验了(但是年限也并不能代表什么),只能说对 C 语言学习有一些经验可以分享给初学者,让你少走一些弯路。

先说下自身的情况吧,我非计算机科学科班,本科专业学的是电子信息工程,学过模拟电子和数字电子技术,课程与计算机科学专业有点差异,算是半个科班。因此我的计算机体系知识构建,基本都是靠自学,只要掌握正确的学习方法,自学也可以构建起来完备的计算机知识体系。

计算机科学技术 CS(Computer Science)作为一门专业课程,就和其他工科课程一样有自己的理论体系,如果你是计算机专业的同学不用我来教该学什么,计算机专业大学四年学校教的那些就是基础,别小看在学校学的那些看起来没啥用的课程。这有一份中中科大的计算机技术本科主要课程结构安排,科班计算机专业培养路线:

8129e10f3f9b679e63af3a426311438b.jpeg
img

操作系统看的是清华学堂在线和哈工大李志军老师的操作系统,数据结构可以看浙大陈越和何应钦老师讲的数据结构,计算机网络参考哈工大的计算机网络课程,这些课程都是免费的公开课,可以在慕课网或者b站找打视频课程。

最近在知乎上回答了一些 C 语言学习的问题,发现很多 C 语言刚入门的同学,对于为什么要学C语言,怎么学好C语言这门课有不少的疑问,很多问题也是我在刚入门时遇到过的。

于是,写下这篇 C 语言学习路线,解决同学们关于如何学和怎么学的问题。

C语言位置和重要性

C语言在计算机体系中,占据着不可替代的位置,起到承上启下的作用。它的语法是很多高级编程语言的基础,比如说 Java、C++;向上可以学习高级编程语言,向下可以学习计算机组成原理、操作系统等等偏基础的计算机基础知识。

c6df36074d2854f5e75f8ec7dbc8c4ea.png
img

C 语言学习路线图

路线图

话不多说,直接上 C 语言学习内容全图,这份学习思维导图,柠檬哥耗费一周的休息时间,连夜肝出的精心总结,汇总了 C 语言需要学习的全部内容:

82da43cda6e5213917290b686467d7b5.png


知识点

想要完全掌握 C 语言,可以先了解 C 语言的学习内容:

  1. C语言用途和语言标准

  2. C语言概述第一个C语言程序

  3. 数据和C语言基本数据类型

  4. 字符串和格式化输入/输出

  5. 运算符、表达式和语句

  6. 循环语句while、for 和条件运算符

  7. 控制语句if else、continue分支和跳转goto

  8. 字符输入/输出和输入getchar、putchar

  9. 函数和递归,ANSI C函数原型

  10. . 数组和指针,多维数组和变长数组

  11. . 字符串和字符串函数

  12. . 作用域、存储类别、链接和内存管理

  13. 文件输入输出,标准 I/O 通信

  14. 结构体、联合、枚举、函数指针

  15. 位操作,二进制数位和字节,按位运算

  16. C预处理器宏定义、内联函数和C库

  17. 高级数据结构,队列链表二叉查找树

如今 C 语言入门书太多了,你去网上商店或者图书馆搜索,教材多如牛毛,这就导致很多初学者不知看哪本书,光看名字长的都一样,无从下手选择!

一本好的教材非常重要,C 语言初学者,一直学不会可能不是你的问题,也许是看的书不对。我经常在网上和大家分享 C 语言学习经验,发现很多初学者都需要这方面的经验分享。当时入门 C 语言用的是学校教授编写的C语言教材,学起来磕磕碰碰。

比如学到指针、结构这块内容,感觉似懂非懂,这些内容对于初学者来说是比较难的,尤其是指针,初学者最容易懵逼。但又临近期末考试,老师为了加快教学进度,几乎照着 PPT 一段段读过。

说起来还要感谢学校的 '天书教材',为了搞懂这些内容,我自己找了其他 C 语言图书和视频,对比着学习,彻底搞懂了C语言基础内容。

现在回头看如果能一开始就接触这些优秀C语言教材的话,学习起来应该能轻松不少。

主要从 C 语言学习三个阶段来推荐书籍:

  • 阶段一入门

  • 阶段二基础

  • 阶段三进阶

不适合入门的图书

《C语言程序设计》 谭浩强 入门不推荐

62893f200fe856ce500e0ec78015ff95.png
img

群众的眼睛是雪亮的,豆瓣评分就能看出来。

都2022年了,大家都知道,谭浩强老师的C语言程序设计教材不适合入门,因为早几年这本书是很多高校的 C 语言教材,但是教材质量一言难尽,特别是指针部分看完仍然一头雾水。

但我还是先替谭浩强老师打个不平:在特定历史时期下,谭老师教材确实挺好的,但是现在不推荐了!

在国内优秀 C 语言教材还比较缺乏的情况下,谭老师的C语言教程,一直作为C语言教材的经典,这是完全没问题的!

在曾经一段时间内,谭老师的C语言程序设计教材,比一些野鸡学校所谓教授水出来的教材水平不知道好到哪里去了。。

我记得 B 站教 C 语言的郝斌老师,也推荐谭老师的教材。

《C 程序设计语言》  ( Dennis M. Ritchie(神书,不推荐作为入门书籍!!!)

094c407e7769c88c5c243d4bd97f5c86.png
img

毋庸置疑,这是一本经典好书,被称为C语言圣经。本书作者是C语言之父 Dennis M. Ritchie 和著名计算机科学家Brian W. Kernighan合著的一本介绍C语言的权威经典著作。

书很薄,短短两百多页,从hello world开始讲起,在短小的篇幅里,手把手教你写了stdio.h stdlib.h string.h当中大部分例程,实现了二分查找、快速排序、二叉树、哈希表这些重要的数据结构和算法。

但是,我要说但是,神书虽好,不适合初学者作为C语言入门图书,否则你会被劝退的。当你看完前面推荐的入门书籍,编写过一定量的代码,再来看这本书,一定会有醍醐灌顶,豁然开朗的感觉。所以我建议你先购买收藏起来,等入门之后再来看,效果更佳!

C语言基础入门

《C Primer Plus》

9351f7d4720e72a87a06a630320b2831.png
img

这本书是C语言入门的经典教材,内容很全面,循序渐进,非常适合自学,详细讲解了C语言的基本概念和编程技巧,由于内容全面书比较厚,需要一定的耐心来仔细品读。

全书共17章。

  • 第1、2章介绍了C语言编程的预备知识。

  • 第3~15章详细讲解了C语言的相关知识,包括数据类型、格式化输入/输出、运算符、表达式、语句、循环、字符输入和输出、函数、数组和指针、字符和字符串函数、内存管理、文件输入输出、结构、位操作等。

  • 第16章、17章介绍C预处理器、C库和高级数据表示。本书以完整的程序为例,讲解C语言的知识要点和注意事项。每章末设计了大量复习题和编程练习,帮助读者巩固所学知识和提高实际编程能力。附录给出了各章复习题的参考答案和丰富的参考资料。

计算机小白如果要自学c语言的话,可以尝试先把浙大翁恺老师的C语言程序设计视频课学完,视屏课程重点更为突出,再来自学《C primer Plus》这本书(内容虽多但对看书自学非常友好),两者相得益彰,先后学完后真是美妙至极!

畅销38年了图书,就像引路人一样引导着 C 语言初学者。从1984年至今,已经升级到了第6版,书中大量完整的、可运行的程序及详细的注释有助于理解代码和概念。

与市面上其他的教程书籍相比,最大的特点就是读起来不会有枯涩烦躁之感。书中新出现的每一个术语,符号,都给出贴近读者目前知识储备的和理解能力的解释。而且,这本书在编排上也十分与众不同,在每个知识点后面都会附带一个“程序清单”。

《C语言程序设计现代方法》

250b85cd72139478bbe0d1102cb28293.png
img

这本书通过一种被作者称为「现代方法」的方式来来介绍 C语言,书中强调标准 C、强调软件工程,不再强调“手工优化”。紧密结合了 C99标准,并与 C89标准进行对照,补充了 C99中的最新特性,这种对比式学习,让读者印象深刻。

全书分为 C语言的基础特性、 C语言的高级特性、 C语言标准库和参考资料 4个部分。每章末尾都有一个「问与答」小节给出一系列与该章内容相关的问题及答案。

本书是为大学本科阶段的 C语言课程编写的教材,同时也非常适合作为其他课程的辅助用书。

《明解C语言》

a3ccdd37ab1140f5debf39b9571795fc.png
img

这本书推荐的人比较少,我看过之后觉得作为入门教材是非常合适的,也推荐给初学C语言的同学们。

这本《明解C语言》是日本的C语言经典教材,最大的特《明解C语言》是日本的C语言经典教材,最大特点点是图文并茂,第三版据说全书有 205 段代码和 220 幅图表,示例丰富,生动有趣,非常适合入门学习阅读。

同时这本书是图灵系列丛书,图灵翻译和初版了很多经典的计算机图书,口碑经得起考验。原著在日本广受欢迎,始终位于网上书店C语言著作排行榜首位。

而且内容深度也比较适中,对 C 语言的基础知识进行了彻底剖析,内容涉及数组、函数、指针、文件操作等。对于C语言语法以及一些难以理解的概念,均以精心绘制的示意图,清晰、通俗地进行讲解。

C语言进阶

《C程序设计语言(第2版·新版)》

04e15fdd200968d0378a15d0e4ccc95c.png
img

毋庸置疑,这是一本经典好书,被称为C语言圣经。本书作者是C语言之父Dennis M. Ritchie和著名计算机科学家Brian W. Kernighan合著的一本介绍C语言的权威经典著作。

但是,神书虽好,不适合初学者作为C语言入门图书,否则你会被劝退的。当你看完前面推荐的入门书籍,编写过一定量的代码,再来看这本书,一定会有醍醐灌顶,豁然开朗的感觉。

书很薄,短短两百多页,从 hello world 开始讲起,在短小的篇幅里,手把手教你写了stdio.h stdlib.h string.h当中大部分例程,实现了二分查找、快速排序、二叉树、哈希表这些重要的数据结构和算法。

甚至为了解释让人头疼的复杂声明,写了一个递归下降的parser来帮助理解。在读这本书的时候,你不觉得这是一个书斋中的学究,试图“教”你什么,而是作为C语言和UNIX系统设计者的K&R,惬意地带着我们后来者漫游他们的世界,因此,他们的介绍如同闲庭信步,而实用的例子也是信手拈来。

《C和指针》

9a0d6511ed12f007eb4864258b469054.png
img

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

通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。

正是指针使得C语言如此之强大,所以要学习C语言的精髓,就是要精通指针!不应当像 java 或者 pascal 那样禁用或者限制指针。当然,设计语言时限制指针也只是一种权衡,牺牲了效率却是使得编程人员更容易保证程序的安全。指针的特点就是高效、灵活。

本书的每一章后面都有“总结”“警告的总结”和“编程提示的总结”三个小节,这个特别好。“总结”是对本章的内容上的回顾,而后面两个是一些经验性的东西,相当宝贵。

第1章只讲解了一个完整的C语言源程序,引出了很多很基础的问题,很好地激发了学习者的兴趣和学习欲望。我觉得这是很好的一种设计。

第2到第5章,讲的是每一门语言都有的一些常规的内容,包括词法、数据类型、语句、操作符和表达式。

第6章开始到第10章讲指针相关的基础的内容。包括指针基础、函数、数组、字符串和结构。

第11章是动态内存分配,其实就讲解了malloc 、free 、calloc 、realloc 4个函数。

第12章详细讲解了怎么用指针实现链表

第13章是指针特性的一些高级应用,最能体现指针神乎其神的地方就是这里了。

剩下几章是一些杂七杂八的内容,包括预处理器、库函数、几种经典抽象数据类型和运行时环境。

本书更适合有C基础的人看。如ADT、递归、指针和数组的部分,书中所述的思想是国内教材所缺乏的,看完本书,能得到一个正确的C语言观。

《C陷阱与缺陷》

51722fa8d16d0b2fa58b6e94e4c21e73.png
img

一本经典的C语言进阶图书,挺薄的一本好书,不是初级读物,但也不过于艰深,而且厚度刚刚好,让人在热情高涨阶段读完,不致于到了一半时间就气馁。

这本书的主题是C中的各类细节,平时往往不会注意,比如:1.注释的嵌套性,怎么判断编译器是否允许嵌套注释。2.运算符优先级,结合顺序,编译器贪婪 3.assert的实现方法,避免if 4.少敲一个分号导致各种血案 5.注意函数、if等的作用域。6.注意字符集,防止移植性问题 7.变长参数,stdargs

书中列举的 C 语言的细节,至少能够帮助你减少 C 代码和初级 C++ 代码中 90% 的 Bug,可以帮助我们避免 C 语言开发的陷阱和障碍。

虽然名字叫《C 陷阱与缺陷》,但本质上说的不是 C 语言的缺陷,而是编程者容易犯的错误。全文的语言很有意思,丝毫没有说教的感觉,举的例子很简单却一针见血,可以作为手边的读物,没事经常翻翻加深印象。

《C专家编程》

12bbde651c5c6929cc45ea73013ceeb3.png
img

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

书中 C 的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习 C++ 等问题进行了细致的讲解和深入的分析。

全书撷取几十个实例进行讲解,对 C 程序员具有非常高的实用价值。如果你是C语言程序员,这本书很值得一读。

另外还讲述了C语言发展过程中的一些轶事,作者行文比较随性,如果你爱听八卦可以去看看这些有趣的小故事,另外,书中对 C 语言中数组和指针这两个常用语法,进行了深入的剖析。

附带了一份我整理的 C 语言电子书合集,可在这下载:C语言编程书籍推荐 | 含下载方式

C语言视频公开课

初学 C 语言不建议一上来就啃书,建议从优质视屏公开课入门,视屏教程相比文本,更容易理解的学习途径。

如果你在学校的 C 语言课听不懂,看书太枯燥看不进去,这都没关系。现在网上大把的高质量学习资源,只要你去找肯定能找的到,资源收集能力也是一种学习能力。

C语言入门视屏课程,推荐翁凯老师和郝斌老师的视屏公开课资源。

两位老师的 C 语言视屏教程都值得一看,各有优点,如果时间充足,建议对比着看,加深理解。下面具体来说说。

C 语言基础入门视频教材

CS50

CS 50其实不是 C 语言入门课,它是哈佛大学的一门计算科学导论课程,内容包括基本的计算机知识以及基础算法,常见的编程语言等等,还会探讨最新的计算机科学领域的成果,课程发散性思维强。CS50课程的讲课形式让人耳目一新,真正做到了“快乐学习”。

柠檬哥为什么推荐学习 C 语言先学这门课程呢?

国内的大学大部分一上来就讲 C 语言,很少有这样一门计算机导论课程。这门课是用 C 语言作为教学语言的,但不会深入的讲解 C 语法,只是用 C 语言来表达一种编程思维,更重要的是培养计算机思想,对计算机科学有宏观的了解,这对以后任何一门计算机专业课程(包括 C 语言)的学习都是大有裨益的!

7b9f90dd2226d7c4ff044e8ef2ebe56f.png
image-20221003115442021

这门从算法、程序设计开始,讲到游戏和网页制作,课程列表是这样的:

【第1集】算法,程序设计,语言等 译

【第2集】算法,数据存储,磁盘,程序设计等 译

【第3集】C语言,源代码,编译器(1) 译

【第4集】C语言,源代码,编译器(2) 译

【第5集】函数,全局变量,参数,返回值 译

【第6集】参数,返回值 译

【第7集】线性搜索,二进制搜索 译

【第8集】符号,递归,冒泡排序 译

【第9集】归并排序,动态内存分配,堆和栈 译

【第10集】CS50函数库,指针,文件输入输出 译

【第11集】数独、计算机史上最有名的bug 译

【第12集】魂斗罗游戏,如何分配内存 译

【第14集】用户体验,数组与指针,Hash函数 译

【第15集】网络编程,HTML语言,编写网页 译

【第16集】网络安全,窃取通讯的工具,动态网络 译

【第17集】垃圾邮件的骗局,屏幕抓取的原理 译

【第18集】网页网站开发 译

【第19集】互联网工作原理,网页游戏制作 译

【第20集】总结与知识问答 译

课程链接:https://open.163.com/newview/movie/courseintro?newurl=%2Fspecial%2Fopencourse%2Fcs50.html

《C语言程序设计入门课》翁凯老师

5685128fef0b8c713003bbe321775c97.jpeg
img

中国大学慕课网有很多高质量 C 语言课程,其中最推荐浙大翁凯老师的《C语言程序设计入门课》,翁凯老师的 C 语言入门课 YYDS, 非常适合 C 语言入门,老师讲解透彻、声音好听,而且特别注重细节。上过这门课的同学都说好,课程好评如潮!

4359200e7220e0eefe10338c771beb59.png
img

课程我从头到尾听过两遍,第一遍是学习,第二遍是享受。两个字评价:透彻。

建议和 C 语言入门部分推荐的图书搭配使用,效果更佳!

这门课是 14 年开的,翁凯老师讲课风趣幽默,课程深入浅出,每节课程之后都有程序清单,还在课堂介绍了一个可以做小游戏的图形库 ACLLib,让你的 C 语言学习不再只有黑乎乎的命令行窗口。

C 语言程序设计入门传送门:https://www.icourse163.org/course/ZJU-9001

这门课程是 C 语言基础学习版,翁凯老师还有一门《C 语言程序设计进阶》公开课,同样可以在慕课网在线学习,进阶课程的质量也得到了同学们的广泛好评,推荐在完成基础内容学习之后,可以继续跟着老师学习C 语言程序设计进阶,内容涉及指针、文件、结构类型等 C 语言进阶主题

C 语言程序设计进阶传送门:https://www.icourse163.org/course/ZJU-9001

《郝斌C语言自学教程》

fd7bdd0d6fb4421964db2422a6ced389.png
image48c3172b46f720aa.png

郝斌老师的自学入门C语言教程,很多早几年入门 C 语言的同学应该都知道,教程是 09 年左右录制,虽然是有些年份了,但 C 语言自 1972 年从贝尔实验室诞生以来,基础语法几乎没有变动,所以你完全可以放心去看。

郝斌老师讲课时说,自己是完全的自学C语言,因此更懂初学者的需求。从自学者的角度带大家学 C 语言,讲解非常认真仔细,是非常基础的的 C 语言入门教程,适合完全零基础的同学入门,毕竟过来才懂过来人的需求。

传送门:https://www.bilibili.com/video/BV1os411h77o

其他的视屏就不太推荐了,准确的说只要你认真学完以上视屏公开课,基本算是已经入门 C 语言。

C语言练手项目

完成 C 语言入门书籍和视频教程同时,需要看进阶教材深入学习+项目练习来消化所学内容,达到对知识的内化吸收。整理了 21 个 C 语言练手项目,从基础语法开始,逐步深入,通过一个个练手项目,让你轻松驰骋在 C 语言的快车道。不走弯路就是捷径!

1.《C语言入门教程》

引入大量的 C 语言程序案例,把算法和语法结合起来,通过引导大家由浅入深地编写 C 程序,让大家掌握 C 语言。将从中学会 C 语言语法、数组、模块化程序设计指针、文件的输入与输出等。

img

地址:https://www.shiyanlou.com/courses/57

2. C语言制作斗地主发牌器

通过本项目的学习,可以让学员掌握一些棋牌类的手机游戏中的发牌系统算法怎么编写,为学员就业后编写一些小的游戏类APP打下良好的基础。


传送门:https://study.163.com/course/introduction/1321006.htm#/courseDetail

3. C语言编写万年历

本次课程将使用 C 语言完成一个简单的日历功能。输入相应的年/月即可看到当月的日历。因此,您需要对 C 语言有一定的了解。

地址:https://www.lanqiao.cn/courses/126


3.《C 语言实现多线程排序》

使用 C 语言多线程模型实现了排序算法。本项目在 Linux 环境下使用 C 语言多线程模型实现了排序算法,通过该项目的学习,可以理解并实践 Linux 环境的编程基础及多线程模型。


地址:https://www.shiyanlou.com/courses/603

4.《3个C语言实例带你掌握递归方法论》

通过 3 个 C 语言编程实例,让你在利用递归解决实际问题的过程中学习递归并掌握其核心思想。

递归(英语:Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。本课程通过3个C语言编程实例,让你在利用递归解决实际问题的过程中学习递归并掌握其核心思想。举一反三,懂得如何使用递归解决其他实际问题

地址:www.lanqiao.cn/courses/749

5.《C语言实现LRU缓存》

使用 C 语言实现 LRU 缓存,从中学习 LRU 缓存的基本概念、C 语言相关编程技巧,双向链表的 C 语言实现以及哈希表的 C 语言实现。

地址:www.lanqiao.cn/courses/737


6.《C语言实现通讯录》

使用 C 语言完成一个简单的通讯录。会涉及到结构体、数组、链表等重要概念。

地址:https://www.lanqiao.cn/courses/125

7.《C 语言制作简单计算器》

用C语言做一个简单的计算器,进行加、减、乘、除操作。本程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。都是C语言很基础的东西(输入输出),学了之后能写出一个完整的C语言程序。适合涉及C语言的基本语法,与输入与输出。适合初学者学习。


地址:https://www.lanqiao.cn/courses/75

8.《C语言实现大数计算器(加减乘除)》

通过C语言实现一个简易计算器,用于解决任意长度的有符号整数的加、减、乘、除运算。主要将涉及到利用全新的数据结构来表示大数,并将新数据结构存储的大数转化为字符用于显示。以及基于大数新的数据结构完成加、减、乘、除的计算算法设计。

地址:https://www.shiyanlou.com/courses/750

9.《C 语言实现聊天室软件》

使用 C 语言实现聊天室软件,学习并实践基本的 Linux socket 通信的相关技术,加深对 TCP/IP 协议栈的理解。


地址:https://www.shiyanlou.com/courses/602

10.《C 语言实现 web 服务器》

使用 C 语言实现一个Web服务器。将会学习 C 语言网络开发,epoll IO 复用机制,熟悉Linux下的C语言程序编译方法,Makefile编写等技能。

地址:https://www.shiyanlou.com/courses/1053

40b8265fd0fb793d9a505e8d7ce981e3.jpeg
img

11.《C语言实现Linux pwd命令》

通过实现 linux pwd 命令,以理解 linux 文件系统的基本概念及内部实现,并熟悉linux系统与文件系统相关的系统调用接口。

地址:https://www.shiyanlou.com/courses/709

12.《C语言实现 FTP 服务器》

更加深入的理解套接字编程模型,并且了解应用层协议(FTP)如何在套接字基础上定义。本项目实现了支持 list,get ,quit 等命令的 FTP 服务器。

地址:https://www.shiyanlou.com/courses/628

13.《C 语言实现Linux who命令》

通过 C 语言实现Linux who命令 项目的学习,可以掌握 Linux 操作系统为上层提供的访问系统数据文件的接口。更好的理解 Linux 操作系统工作的原理。

地址:https://www.shiyanlou.com/courses/584

14.《C 语言实现Linux cp 命令》

通过完成C 语言实现Linux cp 命令项目的学习,可以掌握Linux操作系统中的文件IO相关的系统函数和目录相关操作的系统函数,比如open, write, opendir, readir。深入了解Linux环境系统编程。

地址:https://www.shiyanlou.com/courses/577

15.《C语言实现Linux ls命令》

本课程学习 linux 目录与文件属性,使用C语言实现 Linux ls 命令。其中涉及到 ls 的原理,如何获取获取文件的属性,掩码的相关知识。认识linux系统函数opendir(),readdir()等的调用方法。

地址:https://www.shiyanlou.com/courses/439

16.《C语言实现Linux touch命令》

通过完成一个C语言实现Linux touch命令项目,学习基于LINUX环境的系统编程技术,尤其 Linux 文件 IO 操作相关技术。


17.《C语言实现ping程序》

带领你学习用C语言实现 ping 命令。通过本项目中你可以更深入地理解 TCP/IP 协议,套接字编程,掌握C语言进行网络编程的技巧方法。

地址:https://www.shiyanlou.com/courses/305

18.《C语言版 Flappy Bird》

使用 C 语言来实现一个字符版 Flappy Bird,感受不一样的风采。本课程学习后将会熟悉C语言,以及绘图库ncurses的使用。本课程适合有C语言基础,想做练手项目的同学,可以有效的学习ncurses绘图库的使用,做一些有趣的事情。

地址:C 语言实现 Flappy Bird 游戏

befe7f942bf99c166ec415740b3deb00.jpeg
img

19.《C 语言实现贪吃蛇》

将在Linux平台使用C语言编程,在终端界面上玩贪吃蛇。本课程分为三个实验,实验一介绍了图像库,实验二绘制游戏图像界面,实验三实现贪吃蛇。逐步为同学们讲解一个游戏的制作过程。

地址:https://www.shiyanlou.com/courses/46

20.《C 语言快速实现五子棋》

:用最简单的代码来实现五子棋游戏,帮助大家复习基础知识,学习了如何设计并实现一个五子棋游戏,巩固大家的基础知识。涉及到C语言的基础逻辑判断,程序设计与编写。

地址:www.lanqiao.cn/courses/313

262ecafacbfe459e71fd99c71a446df2.jpeg
img

21.《C 语言制作 2048》

2048是之前十分火爆的一款益智游戏。将使用 C 语言完成一个2048游戏。适合对C语言有一定基础,想做项目练手的同学,本课程学习后将会了解C语言,以及绘图库ncurses的实用。

地址:www.lanqiao.cn/courses/155

img

总结

以上,就是就是 C 语言学习路线的全部内容,包含了学习路线图、C语言图书推荐(启蒙、基础、进阶),还推荐了 3 个优质 C 语言学习公开课,最后给大家整理了 21 个 C语言练手项目,希望这条学习路线经验分享能帮大家少走弯路。

分享和在看是最大的支持
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保姆级零基础 C 语言学习路线,万字总结! 的相关文章

随机推荐

  • Qt6 CMake项目导入资源文件Resources 官方最简洁方法

    导入 xff1a https doc qt io qt 6 resources html build system integration 使用 xff1a source 34 qrc images close2x png 34
  • HTTP 系列(三)—— HTTP报文

    什么是 HTTP 报文 HTTP 报文是简单的格式化数据块 xff0c 通俗的说 xff0c 它是用于数据传输的文本字符串 每条报文都包含一条来自客户端的请求或者一条来自服务器的响应 xff0c 它们都由三个部分组成 xff1a 对报文进行
  • GET请求

    什么是GET请求 get请求其实就是通过URL来传递数据 一个标准的URL网址 xff0c 在最后有一个querystring部分 xff0c 表示对页面查询 xff0c 用 来表示这部分 xff0c 内容必须是k 61 v 对个参数用 a
  • nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result

    文章目录 背景解决 背景 mybaitsPlus this baseMapper selectOne wrapper 查出多个结果 xff0c 抛出了异常 解决 getOne wrapper false ServiceImpl getOne
  • RARP的使用

    大家好呀 xff0c 我是请假君 xff0c 今天又来和大家一起学习数通了 xff0c 今天要分享的知识是RARP的使用 主机只知道自己的硬件地址时 xff0c 可以通过RARP Reverse Address Resolution Pro
  • 5 . 如何用c语言封装寄存器

    前面我们介绍了存储器映射 寄存器和寄存器映射 xff0c 这些都是为使用 C语言封装寄存器做铺垫 我们通过一个实例来对 C 语言封装寄存器进行介绍 实例 xff1a 控制 GPIOC 端口的第 0 管脚输出一个低电平 首先我们需要知道GPI
  • 干货收藏:68道C语言与C++常见面试题

    1 变量的声明和定义有什么区别 变量的定义为变量分配地址和存储空间 变量的声明不分配地址 一个变量可以在多个地方声明 但是只在一个地方定义 加入extern 修饰的是变量的声明 说明此变量将在文件以外或在文件后面部分定义 神级编程网站 堪称
  • 推荐几款好用的手机编程APP!

    各位 很多人现在喜欢用手机写代码 今天小编就带大家盘点几款手机端编程软件 程序员相关的海量资料 点击免费获取 1 C4droid 适用编程语言 C C 适用平台 Android 2 2 软件介绍 付费软件 国内免费 c4droid是款And
  • 精心为学弟学妹整理了60个适合练手的C语言/C++项目,值得收藏!

    前几天写这篇文章 精心为学弟学妹准备的C语言与C 学习路线 书籍 视频推荐和资料 值得收藏 阅读和收藏都挺多 也让我一周涨了3000多粉丝 在这里感谢大家关注支持我 最近很多粉丝朋友私信问一些学习路线的问题以及一些学习资源 一个一个回复有点
  • 如果编程语言是一门武功绝学

    nbsp 学习编程与武功绝学 武侠小说中 各路侠客绿林好汉都是从基本功开始一招一式学起 掌握了足够多的招式后 加之勤学苦练 量变引起质变 会有一天打开任督二脉顿悟出这些招式背后的哲学逻辑 成为一代宗师 在编程的学习过程中 我们何尝不是从一招
  • CSDN粉丝冲3万粉福利放送!C++、Python、数据结构与算法、计算机基础、数据库教程汇总!

    最近有粉丝问我要一些C Python 数据结构与算法 计算机基础 数据库的学习资料 一个一个回复有些慢 索性就写一篇文章吧 声明 此文章中涉及到的内容均来自网络 我看到比较好的才分享给大家 你们可以根据情况选择 程序员必备资源 值得收藏 点
  • C/C++框架和第三方库汇总

    根据读者反馈 xff0c 发现此篇汇总获赞率异常的高 xff0c 为了照顾一下新加入的粉丝 xff0c 故重新发一遍 xff0c 供粉丝查阅温习 值得学习的C语言开源项目 1 Webbench Webbench是一个在linux下使用的非常
  • C/C++动态检测内存错误利器 - ASan

    来自公众号 xff1a 大胖聊编程 作者 xff1a 大胖 ASan xff0c 即Address Sanitizer xff0c 是一个适用于c c 43 43 程序的动态内存错误检测器 xff0c 它由一个编译器检测模块 xff08 L
  • C++之虚函数和虚函数表

    哈喽大家好 最近开始学习计算机基础相关的面试内容 xff0c 比如C 43 43 算法与数据结构 计算机网络 操作系统 设计模式 数据库等 因此把学习时记的笔记分享给大家 xff0c 希望对大家有所帮助 今天分享的是C 43 43 中虚函数
  • 计算机大一新生,想卷却找不到方向,恳请前辈指指路?

    其实 xff0c 大学里面的课程就告诉你应该学什么 xff1f 先推荐三个非常不错的计算机科学学习的 Github 仓库 xff01 希望对大家有帮助 xff01 哭了哭了 xff01 如果我当时上大学的时候有人告诉我这些开源项目就好了 x
  • http cache-control 指令的设置以及意义

    转载地址 https developer mozilla org zh CN docs Web HTTP Headers Cache Control http www cnblogs com yuyii archive 2008 10 16
  • 精心整理的给简历加分的C++项目。值得收藏

    无论做什么项目 xff0c 在写简历时 xff0c 最好要整理出项目中的技术点 xff0c 思考如何跟面试官介绍你的项目 xff0c 要经得起面试官的提问 项目的话 xff0c 可以考虑做下面的这几个 xff1a 神级编程网站 xff0c
  • 77%的本科毕业生起薪超过1万元,程序员的薪资到底有多高?

    都说互联网行业进入了寒冬 xff0c 可实际上 xff0c 程序员的薪资还是非常可观的啊 xff01 最近拉勾招聘数据研究院发布一则报告 2022程序员群体职场洞察报告 针对程序员群体展开调研 xff0c 呈现出当下程序员的职场生存状态 薪
  • C++入坑指南

    如果要入坑C 43 43 xff0c 那么你需要阅读一下这篇文章 本文目录 xff1a 什么是C 43 43 xff1f C 43 43 的历史 xff1f C 43 43 为什么经久不衰 xff1f C 43 43 有什么优势 xff1f
  • 保姆级零基础 C 语言学习路线,万字总结!

    从大学接触 C 语言编程 xff0c 工作之后一直从事互联网 C C 43 43 后台开发工作 xff0c 粗略算下来有 10 多年经验了 xff08 但是年限也并不能代表什么 xff09 xff0c 只能说对 C 语言学习有一些经验可以分