C语言你所要知道的事(C语言基础篇)

在开始写这篇文章前,我来谈一谈我当时是怎么学习C语言的。其实我和大部分同学一样,是上了大学之后开始接触C语言,有人用三天搞定了C语言,可见C语言想要入门并不是很难,其实学完之后,你也会发现C语言也就那样。当时学习C语言主要是自学,有两个特别好的学习平台,一个是B站,一个是慕课,另外51CTO也可以,只不过有些课程可能要收费。这个是我当时看的一个视频教程或许对许多初学者有用,个人感觉是我看到的最适合入门的教程了。
https://www.icourse163.org/learn/CUG-1001632003?tid=1002920002#/learn/content?type=detail&id=1004111287&cid=1005067545&replay=true

编程语言

计算机编程语言主要可以分成三类,机器语言,汇编语言和高级语言。

机器语言指的是机器可以执行的语言,我们的计算机只认识1和0,比方说一个电子开关只能控制灯的亮灭,而不能控制它的亮度,1表示灯亮,0表示灯灭,可能有人问有些开关可以控制灯的亮度啊,其实这并不违反计算机只认识0和1,只不过是在很短的时间切换0和1,比如在0.1秒时间内其中0.05秒灯亮。0.05秒灯灭,这样就可以控制灯的亮度,总的来说,计算机只认识0和1,没错计算机就是这么笨。

那我们不可能输入0和1让计算机去执行,这样太麻烦了,其实早期的编程还真是这样,在一个纸条的打孔,根据有没有空来判断是1还是0,后来人们觉得太麻烦了,于是有了汇编语言,汇编语言接近人类语言但编写者需要对底层有所了解,那汇编是怎么执行的,其实当一条汇编语言写出来,机器是不认识的,前面说了机器只认识0和1,那怎么办呢,于是人们想了个办法,那就是将写好的汇编语言编译成机器看的懂的0和1,然后去执行。

前面提到编写汇编语言编写需要对底层要有所了解,那么有没有语言是不需要对底层了解,更接近我们的日常生活的,于是就有了高级语言,我们学习的C语言就是一门高级语言,那它是怎么执行的,在C语言中,其实它是将C语言代码编译成汇编语言,在通过汇编语言编译成机器理解的0和1来执行。

那么高级语言和底层的语言有什么区别呢?可以这样说,做同样一件事,底层编写量更大,但是效率更高,比如做一件事,C语言只需要一条代码,而汇编语言可能要写十条代码,但是汇编语言可能只要0.01s,而C语言可能需要0.1s时间。

浅谈C语言的历史

1969年,通用电气、麻省理工学院和贝尔实验室联合创立了一个庞大的项目 ---- Multics工程。该工程的目的是创建一个操作系统,但遇到麻烦,他们没能完成目标,没能交付原先承诺的快速而便捷的在线系统。

心灰意冷的贝尔实验室专家撤离 Multics工程后,他们又去寻找其他任务。其中一位名为肯·汤普森( Ken Thompson )的研究人员对另一个操作系统很感兴趣,他们想管理层提议,但遭到否决。在等待批准时,他和他的同事丹尼斯·里奇( Dennis Richie )自娱自乐,把"太空旅行(一种软件)"移植到 PDP-7( 一种迷你电脑 )上,于此同时汤普森为PDP-7编写一个简易的操作系统。他比Multics简单、轻便很多。整个系统用汇编编写,并在1970年,取名为UNIX。

用汇编写的UNIX显得很笨拙,汤普森想利用高级语言的一些优点,于是他创建了B语言,B语言从来没有真正成功过,因为硬件系统的内存限制,他只允许放置解释器而不是编译器,导致效率十分的低。

1970年开发平台转移到PDP-11以后,无类型语言( B语言不能表现不同的数据类型,打个比方就是不能表示一个数是整数还是小数 )很快就不合时宜了,而且效率也是一个问题。丹尼斯·里奇( 上面提到第二个人 )利用PDP-11的强大性能。创建了能同时解决多种数据类型和效率的"New B"(这个名字很快就变成了"C")语言,他采取编译模式和解释模式,并引入了类型系统,每个变量在使用前必须声明。

C语言编译器

前面谈到我们编写的C语言计算机不认识,需要把他翻译成计算器认识的0和1也就是二进制代码,那么我们需要一个工具来帮助我们,那就是编译器,编译器可以帮我们写的代码编译成机器语言。一种方法是我们可以采用记事本加命令行的方式,这种方式不太提倡,不适合新手,另一种是通过网上下载的软件。

那么一般软件有哪些呢,比如说VS,我见过有很多新手去用这个软件,结果创建个工程都创建半天,结果消磨自己的耐性和兴趣,导致学到一般半途而废。对于软件我的观点是先把简单的用会,再去用复杂的,因为VS本来就不是给学习者用的,这个软件是给有一定基础的或者是开发者用的。我们先要把简单的学会。

我当时用的是Visual C++ ,这款软件虽然老了点,但是能满足我们的需求,很多大学也推荐这款软件。下面我在评论区给出下载地址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章