学习C语言从小白到专家你只需要这一篇博客-史上最全C语言学习资源整理

C语言资源整理

写在前面:这里是小王成长日志,一名普通在校大学生,想成学习之余将自己的学习笔记分享出来,记录自己的成长轨迹,帮助可能需要的人,平时博客内容主要是一些系统的学习笔记,项目实战笔记,一些技术的探究和自己的一些思考。欢迎大家关注,你们的每一个评论点赞关注我都会仔仔细细去看的。有任何问题欢迎交流,我会尽我所能帮助大家的,共创CSDN美好环境。

0.怎么去学C语言

很多人都说C语言很难很难,知乎还有各大论坛一大批劝退党,其实,你如果仔细去看看,啥都难,计算机网络难,数分难,高代难,我感觉只要还有人在学的学科,都会有劝退党,肯定有人学不好但也肯定有人学得好的,所以对待这种论调别理会当个屁放了就好了,为什么你不能是学的好的那个。

再来说说为什么有人学不好C语言,C语言中可能最让人头疼的点就是内存和指针这两块了,这两个概念本身很简单。但是通过这两个概念,它把很多底层操作系统的知识和体系结构的知识都暴露了出来。例如什么事栈,什么是堆,什么是代码区,什么又是静态区,他们各自又有什么特点,内存什么时候自动回收,手动回收,我们怎么管理内存,强转时什么情况会造成溢出一大堆事情。但是不要慌!跟着我来,这些都是小事情。

学习C语言或者说任何一门语言我的建议都是快速入门然后做一个新手项目,做完总结之后二次深入学习,再做项目总结,总共这样来个三四次你C语言基本就没有什么问题了。

我建议可以看下面的菜鸟教程或者C语言中文网上的入门教程,看得快的话两三天就结束了,你要喜欢看视频课也可以去看老九学堂的课程,或者慕课上的任意一门都差不多,反正第一次看完就忘的差不多的那种,没什么大的区别,快速入门之后做一两个新手项目,我的推荐是下面提到的后宫选妃系统和精忠报国文字游戏,不会做的话可以去看老九C语言里的视频教程,也可以看我当时的博客笔记,都整理在下面。

快速入门之后就可以开始深入了,这是我推荐看书,看好书!因为有的书里讲的乱七八糟,自己都把自己搞混了还来教别人,我当时在网上找了好久,下载了有十来本书吧,最后选定了5本,现在看了三本,资源也都整理在下面,当然你也不一定需要跟我一样,可以自己去找自己想看的书。
这个阶段完成后可以来做一个难一点的项目了,基本参照本科学期C语言设计作业来做吧,做个学生管理系统什么的,真的不是很难。

对于GITHUB一开始不太推荐,真想要接触的话可以去hellogithub找找项目,网站作者分门别类整理好了各个语言里经典的github项目。为什么不推荐,因为这些项目里大多涉及了图形化开发,计算机网络,socket很多的其他知识,而C语言又不像JAVA那样有直接的类库可以套用,不是你会C就可以开发的,这些点基本都需要你再去学习,很拖C语言节奏。

最后的最后,多看书,多看好书,少看培训视频,项目驱动,即时总结复盘,以上,冲吧,少年!

1.学习资源-自学网站

这套文字教程比较简单,适合需要从零开始了解 C 语言的同学,学完之后能够让你对 C 语言有足够的认识。同时菜鸟教程有自己的在线编辑器,可以边看边试,比较推荐。

这套C语言中文网的文字教程很全面,很多,目录基本就和上课一样,但是许多部分都需要开会员才能看,所以对于这一套教程我的建议就是作为一个补充,当遇到自己不会的或者比较困惑的点的时候,可以来这换个口味尝试一下,没准就可以了。

一个培训机构免费公开出来的课程,课程里面包含了两个项目,真的蛮有心的,但是不推荐看视频,效率太低而且许多点并不会讲的很透彻,书真的是个好东西。

慕课上也是有很多好的课程的,真的除了上课别的什么办法都没用的话,那还是取慕课上找C语言的课程吧。

2.C语言难点-推荐博文

注:以下博客都是我自己看过或者就是我自己写的,基本包含了C语言中迄今为止我认为的难点,质量有保障!如有推荐欢迎留言,我会一直更新的。有关作者如果不希望我放您的链接的话可以留言。
也可以关注或者我的C语言收藏夹,我会持续更新的。

  1. 让你不再害怕指针——C指针详解(经典,非常详细)

很详细也很好的一篇文章,但是文章里面直接把一些不同的概念等同了,需要自己注意一点,总的来说看这篇文章利大于弊,毕竟60分都没有的时候就不要去想90分之后的事情了。

  1. 指针数组与数组指针详解
  2. 我们该如何对付花里胡哨的运算符优先级©

论如何对付花里花哨的运算符优先级,表格加助记顺口溜。

  1. 原码,反码,补码,到底是个啥? -?,你来这看看吧。
  2. 别看了!C语言里的unsigned int/char 看我就够了
  3. C语言实现动态数组
  4. C语言动态数组
  5. 动态链表的实现(C语言)

众所周知,在C语言里数组的大小是固定的,要么用常量定义长度要么手动输入一个数字作为长度,那么我们怎么实现动态数组呢,即随着数据的增加动态的扩容数组的长度,具体请看上面三篇文章。

  1. NULL,(void*)0,(void)0,nullptr区别
  2. C语言之大小端详解

你一定得知道的东西,如果你连这都不晓得该好好学C语言了。

  1. C/C++——程序的内存分配
  2. 十大排序算法基本思想,动画演示及其C语言实现

有些博客里里的代码是有问题的,我看的时候真的好无语,但这篇是我自己写的,经过测试,可以放心食用。

  1. C语言常见问题集锦【你必须知道的495个C语言问题】

3.C语言经典必读书籍

注:下面三本书是我看过的最好的三本C语言里的书,超级推荐,我感觉看这三本就够了!如果百度盘失效可以留言或者私聊我补发

  • The C programming language

C语言圣经级著作,但如你所想,这是本大大大部头,反正我是只看了一大半就看不下去了,建议身边备一本,电子版也得,当工具书用。

  • C专家编程

吹爆的一本C语言书籍,里面对指针,数组,内存,编译这些点的讲解真的让人醍醐灌顶,但如其书名,不适合小白入门使用,如作者在书序里说的,适合当做第二本C语言书籍,真的超棒!

  • C语言常见问题集

书中从声明、结构体等几乎C语言涉及的方面分门别类地罗列了一大堆可能出现的问题,基本是以问题加解析的形式,有时间的时候可以看看。

注:以下提到的书籍我自己并没有看过或者只是试看过部分,是根据知乎和简书上的讨论整理出来比较经典的关于C语言的书,如果是选书的话基本可以从这选了。

  • C程序设计语言
  • C和指针
  • C陷阱与缺陷
  • C Prime Plus

上面的书下面项目笔记专栏给的百度云链接中都有,可以自行下载,emm,有能力以后还是要补一下票各位。

4.C语言项目资源

光说不练假把式,在学习编程语言中最重要的就是不断的练习,在bug中成长,加油吧,少年。
关于项目在网上可以找到很多,但大多数都要付费,这里放几个免费的项目,项目一二个是我做过的,源码可以找到,其余的是其他平台的免费项目,可以跟着做,很不错的。

项目资源

这两个项目在下面的百度云链接里可以找到源码,如果不会可以去看 老九学堂 里关于这两个项目的讲解的那一部分,个人感觉很适合新手,加油。

这四个项目都是平台实验楼上的免费课程,可以跟着课程一起完成。

  • 贪吃蛇

基本说到C语言项目都会说到的一个小游戏项目,比较简单,主要是数组的妙用,源码也在百度云链接里可以找到。

更多项目:基于C语言的项目资源-GITHUB资源整理

跳转页面是一个github项目,里面整理了许多基于C语言的项目资源,怎么下载的话可以自行百度(百度上一大堆教程)也可以找我。

项目笔记(系列博客)

下面是我当时做项目时写下的博客笔记,里面有一些常见的坑可以供参考,如果有问题也可以私信我。加油。

链接: https://pan.baidu.com/s/12b2wM9CvJQUUNgr4b0TJ5A 提取码: hqex
上面提到的三个C语言项目加上C语言经典书籍都这这里面了。具体内容如下,祝各位学习C语言顺利。
在这里插入图片描述

C语言学习必备工具

在线网站,能够在C语言表达式与其对应的英文解释进行互相转换,例如:
char ** const * const x < - > declare x as const pointer to const pointer to pointer to char

更多工具可以看博客-自用工具,持续整理中。

问:学习C语言最重要的是什么?
答:是坚持,是行动。不是你存满一个收藏夹的文章,放满一个硬盘的资源就结束了的,那反而会加大一个人的焦虑,所以时常清理一下自己的收藏夹,做事,做少事,但要做精!这也是我这里并没有像其他教程那样给你推个几十个课程,几十本书,那没有意义,沉淀下来,别被现在的浮夸风给影响了,克服一下自己的松鼠症,千里之行始于足下,心怀大志但要脚踏实地,各位,加油!

都看到这里了,各位哥哥姐姐叔叔阿姨给小王点个赞 关个注 留个言吧,和小王一起成长吧,你们的关注是对我最大的支持。
有事没事进来看看吧 : 小王的博客目录索引

一、C语言自我YY<br /> 1)、C语言是许多高级计算机语言的基础,学好C语言能更好的学习其他高级语言,为以后的学习打基础;往深学C语言的话那就是学到C在Linux里的应用,Linux十分强大。<br /> 2)、C语言是一种计算机程序设计语言。具有高级语言的特点,又具有汇编语言的特点。C语言可作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。<br /> 3)、应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。<br /> 4)、C语言是面向过程语言C语言通过windows/linux平台下编译的,是直接运行在windows/linux平台下的,而XX始终是运行在他的虚拟机之上的;所以理论上C语言能做一些相对于比较底层的工作,像XX就不能编写Windows病毒。<br /> 5)、如果要利用编程来做一些windows优化工作的话,建议还是利用C语言C语言是目前世界上流行、使用最广泛的高级程序设计语言<br /> 6、很多编译器,几乎所有操作系统Windows,Linux,Unix的大部分代码都是C,C在背后做了很多东西的,也许开发游戏用C++,安卓用XX更为合适,图形界面的用其他语言开发效率更高一些(因为他们封装了很多东西),但同样的原因导致略微接近底层的功能其他语言根本干不了!Windows的API都是按照C语言的格式给的,这也很能说明问题!嵌入式开发更是离不了C语言!纵观电脑发展几十年,C语无所不能呀!
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:白松林 返回首页