前段时间,我分享了关于C语言的一些必备知识点,感兴趣的朋友可以查看我的往期文章,或是关注公众号c语言进阶之路,查看次条文章,或搜索关键字“编程小白基础必备”,就能查看相关文章了。

C语言的知识点讲完了,这里还做一下整理与总结,大家可以查看一下目录回忆一下知识点,如果都没有问题,你就可以进入下一个阶段了。

 

分享顺序如下:

C语言发展史

基本数据类型

常量与变量

表达式

运算符

顺序结构

循环结构

数组

函数

指针

结构体

文件

如果大家看到以上知识点概括,对之前所学的知识还有一点模糊,可以查看我的往期文章哦~

题外话

这里很多新手学习会遇到的一些问题,希望可以解决你的疑惑。

有什么好的C语言书籍推荐吗?

这个也可以看看往期文章,其实书籍这一块已经发过很多推荐了。固定不变的还是那几本书,这里就不重复说了。

学知识是在看到不懂语法怎么办。

你要明白一件事情,你学的新知识,如果实在弄不明白为什么,那就记住他,不要浪费过多的时间在这个上边,因为这些知识经历了数十载的洗礼都没有被推翻,说明他有存在的价值,只不过现在你的知识储备还不够你理解他而已。比如我遇到过有人不明白赋值和全等的区别,有自己的想法,其实这就和英语的固定搭配是一样的,你不用去想它为什么这样,定义就是这样,记住它就好了。

不管是现实世界还是计算机世界,现有的所有知识都是人为定义出来的,然后经过大家的推敲觉得这个事情是正确的,然后就会被广泛使用。如果有一天你发现了现实世界某个知识定义的有问题,那么你也可以提出来,在学术界的审判之后,如果觉得你是正确的,那么,你就会被载入史册,并且你提出的事情也会被大家广泛使用。

 

然后这里针对上面概括的知识点说一下:

1. 基础知识

所谓的基础知识,就是我们之后学习C语言、甚至进入编程行业所必须具备的一些前提知识。

你不了解一些计算机的知识、你电脑上不装编译器(编译器就是敲代码的地方),那你还是不要学了,浪费时间。因为编程是在实际编写代码中成长的,而不是看书成长的。

 

所以,需要多少基础知识呢?

其实刚开始不是很多,都是一些常识的内容,十八九岁接触过电脑的同学都应该有所了解的知识而已。

首先,为什么学习C语言。

C语言是IT行业人必会的一门语言,C语言可以不用,但是不能不会。当然它的优势可以在文章中找到。

 

其次,计算机的组成器件。

都要学编程了,不能连最基本的计算机组成都不知道吧。

最后,编译器的安装。

不仅仅是C语言要装编译器,只要你接触编程,不管学什么语言,第一步就是装编译器输出 “Hello World!”。

2. 顺序程序设计

顺序程序设计,说白了就是写代码的过程,与人做一件事情的流程很像。人处理一件事情基本都是从前往后做的,代码也是一样,写在前边的代码会被先执行到,后边的代码就会被晚一点执行到。

人做事情顺序有误就会闹笑话;程序执行的顺序有问题,就会出现我们常说的一个词——Bug。

了解程序应该在哪里编写。

绝大部分编程语言编写的时候,都会有一个指定的程序开始的位置 “main”,也就是编译器执行代码的时候会到 main 中寻找代码来执行。所以我们要把我们的代码写在这个里边。

C程序运行需要的一些前提。

前一问说了,代码要写在 main 里边,那么main要放在哪里呢?

了解编写程序的思路。

也就是说编写代码其实跟人做一件事情是一样的,只不过我们写代码的目的是让程序帮我们循环往复的做同一件事情而已。

3. 数据类型

现实世界中有整数、小数、分数、复数等等数据类型;这些数据类型之所以会存在,不是凭空产生的,是一些很伟大的数学家定义出来的,之所以可以被全世界用这么久并且将会一直用下去,是因为他符合人的认知并且切合实际。

编程界也可以看作是一个小世界,那么这个小世界也应该存在着一些数据类型,只不过程序中的数据类型的主体不是人,而是计算机了。由于计算机的存储方式以及存储长度的限制,C语言就会定义一些尽可能切合实际的、大家认可的数据类型来供C语言编写程序过程中使用。这就是数据类型产生的原因。

4. 标准输入输出

经过上边的学习你应该会知道任何数据在计算机中的存放形式都是二进制的0/1串,那么当我们想要输出一个文字的时候,总不能把这些0/1串直接输出吧。这个时候就是格式化的作用了,它可以根据用户选择的格式化方式将0/1串转化为用户想要的数据形式。

5. 进制转换

现实世界中使用的是十进制,计算机使用是二进制,于是就要学习十进制与二进制之间的转换。

在现实世界中,如果想要描述一个很大的数,我们知道用大一点的单位来描述。计算机也是一样,如果直接用二进制描述一个数据有点繁琐,所以就会产生一些较大的单位,比如:八进制,十六进制。

举一个栗子:现实世界中10000用万做单位可以描述为10万。计算机中二进制的数据 00110001 使用十六进制表示就是 31,确实简洁许多。

6. 选择结构

选择结构就是从众多数据中选择出符合需求的数据来进行下一步操作。

举一个栗子:从整个班级的成绩单中选择出 数学成绩>60分的同学,这个过程就是选择结构需要做的事情。

7. 循环结构

日常生活中有很多事情都是重复,再重复。在程序编写中也是这个样子,有一些代码或许会被重复执行成千上万遍,这个时候就可以用循环结构去代替一些重复执行的代码,只需要保留一份代码,然后令这份代码循环执行多次即可。

嵌套循环:就是在循环结构里边再放循环。

三个循环的差异以及特性:要知道for循环可以指定循环的次数;while循环次数不确定;do...while会先循环一次在进入判断条件。

循环的中断:循环有两种结束方式,第一种是 循环次数或者循环条件 不满足了,就停止循环了;还有一种就是强制循环的停止。

强制停止有两种方式:break与continue。

8.数组

随着深入的学习你会发现数据越来越多,有的数据格式相同、并且表达的含义相同。如果可以将这些数据存放在一起统一命名,就会很方便。于是数组的概念就产生了。

数组就是一组数据的集合,并且这个数据集合是有顺序的,集合中的所有数据的数据类型都是相同的。

9. 函数

随着学习的深入,发现main中放的代码越来越多,并且有很多代码重复写了多次,导致main越来越臃肿;于是我们就打算把main中具有相同功能的代码抽取出来,这就叫做函数,给这段函数起一个名字,然后使用的时候只用调用这个函数名字就可以了。

10. 指针

指针是C语言的精华所在,指针提供给用户可以直接操作内存地址的功能,其他语言都是屏蔽了这个功能,正是由于指针的存在C语言才变得强大,同时也是因为指针的存在C语言才变得不安全。

举一个栗子:有一个变量 int a = 3; 平常修改数据的方式是使用变量a来操作的,当使用指针的时候,可以直接找到电脑内存中的这个3所在的地址,直接修改,而不用通过变量a。

指针的工作原理,以及内存原理:指针就是地址,地址就是内存中存放实际数据的空间。

指针,指针变量的关系:指针是地址,指针变量是指向指针的一个变量而已。

这一部分知识点我分为了上下两篇

11. 结构体

接触越来越多的需求之后,你会发现简单的数据类型int,float,char等等根本不够用了,于是就需要使用结构体自定义一些数据类型来使用。

举一个栗子:我们要自定义一个 student 数据类型,但是C语言中并没有这个数据类型,怎么办呢?我们可以通过结构体将基础的数据类型int,char,数组等等组织起来,形成一个我们自定义的数据类型,并且给他起一个名字叫做 student。这就是自定义的一个数据类型。

12. 文件

最后,所有的编程语言都是可以操作文件的,因为程序运行起来之后的所有数据都是临时的,如果不存放在文件或者数据库中,那么当程序运行结束之后,数据就会消失,目前没有学习数据库,那么就把数据存放在文件中吧。这里的话,知识点是以视频的方式再公众号发布,看了应该会对你有所帮助。

好了,以上就是往期C语言知识的一个整理与总结,详细信息可以在公众号查看哦~

最后,如果大家如果在自学遇到困难,想找一个C/C++的学习环境,可以加入我们的C++学习圈,点击我加入吧,会节约很多时间,减少很多在学习中遇到的难题。

知识点回顾——C语言知识点复习梳理,看看你是不是都完全掌握了的更多相关文章

  1. C语言知识点复习梳理

    C语言知识点复习梳理 C语言的知识点讲完了,接下来就是做一下整理与总结,然后就会进入其他知识的学习. 本文目录如下: 基础知识. 顺序程序设计. 数据类型. 标准输入输出. 进制转换. 选择结构. 循 ...

  2. 零基础Python知识点回顾(一)

    如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符  输入检查是否已经安装pip,一般安装了python都会有的. >pip         ...

  3. 前端知识点回顾——HTML,CSS篇

    前端知识点回顾篇--是我当初刚转行为了面试而将自己学过的前端知识整理成的一份笔记,个人目的性很强,仅供参考. doctype 有什么用 doctype是一种标准通用标记语言的文档类型声明,目的是告诉标 ...

  4. 面试前的准备---C#知识点回顾----03

    经过一天的奔波,喜忧参半,不细表 再回看下标题,C#知识点回顾 再看下内容,数据库3NF 原谅我这个标题党 今天继续回忆 1.HTTP中Post和Get区别 这忒简单了吧,大家是不是感觉到兴奋了,长舒 ...

  5. [iOS]C语言知识点系列视频

    C语言知识点系列视频 目录 C语言技术视频-01-变量的定义 C语言技术视频-02-程序分支结构(if...else) C语言技术视频-03-程序分支结构(switch) C语言技术视频-04-程序循 ...

  6. Spring知识点回顾(08)spring aware

    Spring知识点回顾(08)spring aware BeanNameAware 获得容器中的bean名称 BeanFactoryAware 获得当前的bean factory Applicatio ...

  7. Spring知识点回顾(07)事件发布和监听

    Spring知识点回顾(07)事件发布和监听 1.DemoEvent extends ApplicationEvent { public DemoEvent(Object source, String ...

  8. Spring知识点回顾(01)Java Config

    Spring知识点回顾(01) 一.Java Config 1.服务和服务注入 2.Java 注解 :功能更强一些 3.测试验证 二.注解注入 1.服务和服务注入 2.配置加载 3.测试验证 三.总结 ...

  9. Java进阶(二十六)公司项目开发知识点回顾

    公司项目开发知识点回顾 前言 "拿来主义"在某些时候并不是最佳选择,尤其是当自己遇到问题的时候,毫无头绪. 在一次实验过程中,需要实现数据库的CRUD操作.由于之前项目开发过程中, ...

随机推荐

  1. Go module 本地导包方式

    tip本文只讲关于Go module 本地导包方式,其他请自行查阅 Go module 导包方式,go mod init project-name,会得到一个go.mod文件,此文件是管理依赖的,通常 ...

  2. Luogu P3846 [TJOI2007] 可爱的质数/【模板】BSGS

    题意 给定 \(y,z,p\),求最小的正整数 \(x\) 满足 \(y^x\equiv z\bmod p\),保证 \(p\) 是质数. \(\texttt{Data Range:}2\leq y, ...

  3. Java学习的第十二天

    1.包名 2.接口不太懂. 3.明天开始学习第五章

  4. Learn day9 粘包\struct用法\hashlib校验\socketserver并发\模块引入\进程\join\守护进程

    1.粘包现象 总结 : 导致黏包现象的两种情况 hello,worl d (1) 在发送端,发送数据太快,频繁发送 (2) 在接收端,接收数据太慢,延迟截取 # ### 服务端 import sock ...

  5. 我用 Python 撸了一个 plist 图集拆图工具!附上github源码

    这些年,我一直在使用 JavaScript .CocosCreator 做开发,只要是他们不能解决的,我都不太愿意去弄,或者说是不太情愿去做.真的是手中有把锤子,看什么都是钉子,越是熟悉一样东西,越容 ...

  6. 「SHOI2015」超能粒子炮・改

    「SHOI2015」超能粒子炮・改 给你\(T\)组询问,每组询问给定参数\(n,k\),计算\(\sum\limits_{i=0}^k\dbinom{n}{i}\). \(T\leq10^5,n,k ...

  7. Java_流相关

    java.io包中重要的5个类3个接口 类名 说明 File 文件类 InputStream 字节流输入 OutputStream 字节流输出 Reader 字符输入流 Writer 字符输出流 Cl ...

  8. jquery播放图片

    * { margin:0; padding:0; word-break:break-all; } body { background:#FFF; color:#333; font:12px/1.5em ...

  9. 高清DEM最高立减1500元!

    选购攻略: 活动一:选购12.5米DEM(地形)数据.30米 DEM(地形)数据,满500元立减100元.满1000元立减200元.满2000立减500元.满5000元立减1500元:每位用户仅可享受 ...

  10. tp3.2展示列表

    public function get_list($where=array(),$field="",$order = "id desc"){ $field = ...