C语言是什么?听起来很神奇的样子。其实,在很多城市的高中甚至初中,学校就已经开设了C语言课程,在进入大学之前,这些学生已经有了很好的编程基础。但是中国的教育很不均衡,在很多地区,同学们很少接触编程类的知识,学校也没有相关的课程,在进入大学之前甚至都没有听说过C语言,对编程领域一片茫然,这就导致了很多理工科同学进入大学对C语言一无所知,很难跟得上老师的进度,所以我们来介绍一下C语言。
01什么是编程语言
在介绍C语言之前,我们先来了解一下什么是编程语言。
编程语言也叫做计算机语言,简单来说,就是人与电脑交流的语言。计算机是不能直接理解人类语言的,所以就需要有一种语言,既使人类能看懂,又能让计算机理解,这种语言就是编程语言。
编程语言可以分为三种:机器语言、汇编语言和高级语言。
01 机器语言
机器语言是用二进制代码表示的计算机能直接识别和执行的一-种机器指令的集合。无论什么语言, 最终都要转化为机 器语言。因为计算机是以二进制进行数据处理的,所以计算机能够直接理解二进制代码。因此,它具有速度快,资源占用少的特点。
但是,机器语言写的程序全是0和1的代码,人类很难看懂,还容易出错。所以,除了计算机生产厂家的专业人员外,绝大多数的程序员已经不再去学习机器语言了。
02 汇编语言
机器语言这种反人类的语言让人们崩溃,科学家开始琢磨怎么让计算机理解人类的语言。基本思路是做一个翻译器,将人类语言翻译为机器语言。这种翻译器就是“编译器”。
但是,让计算机直接理解人类语言至今都是一个难题,所以科学家想了一个折中的办法,就是设计一种尽量接近人类语言,又可以准确翻译成机器语言的语言。在这种情况下,汇编语言就诞生了。
简单来说,就是把机器语言用助记符表示,方便编写和记忆。汇编语言比机器语言易懂,便于调试,占用空间少,运行速度快,所以在一些功能相.对小巧但硬件对语言设计要求苛刻的行业仍有广泛的应用。
03 高级语言
随着计算机的发展,更接近人类语言的语言出现了,它就是高级语言。它基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。C语言就是高级语言的一种,除了C语言,高级语言还有JAVA,C++,PHP等等。
02C语言的诞生
C语言的诞生要从一个爱玩游戏的人开始说起。
20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。他找到了一个空闲的机器,但这台机器没有操作系统,为了能玩游戏,他便动手自己开发了一个操作系统,这个系统就是大名鼎鼎的UNIX操作系统。
但是操作系统用什么语言写呢?当时有一种就BCPL的语言,他在这种语言基础上设计出了B语言(B取自BCPL的首字母),用B语言写了第一个UNIX操作系统。
1971年,同样酷爱Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
C语言的主体完成后,他们开始迫不及待的用C语言重写UNIX系统,在这个过程中,C语言也逐渐变得更加完善。
1983年,由于UNIX系统和C语言的巨大成功,Ken Thompson和Dennis M.Ritchie共同获得了计算机界的最高荣誉——图灵奖。
为了玩游戏开发出一套系统,为了开发系统又设计新的编程语言,他们对游戏的热爱让我们不得不敬佩!
UNIX和C语言,得其一就可富可敌国,但他们并没有申请专利,商标,而是把所有的一切都公布了出来,这使很多人都具有了自由地为UNIX和C语言添加各种代码,做出各种贡献的条件,极大的促进了它们的进步。
C语言越来越火,美国国家标准协会成立了C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159—1989,简称“C89”,不过人们也习惯称其为“ANSI C”。
1999年1月,国际标准化组织(ISO)和国际电工委员会(IEC)发布了C语言的新标准,名叫ISO/IEC 9899:1999 - Programming languages -- C ,简称C99标准。这是C语言的第二个官方标准。这些标准的建立,是为了规范C语言的编写,使C语言可以健康的发展。
03为什么要学习C语言
时至今日,C语言仍是最火热的编程语言之一,除C语言之外,排名前十的编程语言有6种直接使用,或者间接引用了C语言的语法,所以,学习C语言可以使我们更容易得学习其它语言。
C语言可以直接与计算机底层打交道,所以,对于操作系统的开发,C语言是不二之选。
在对程序的运行速度有严格要求的地方,例如“云计算“领域,对性能的要求特别高,C语言就是首选,因为C语言是执行最快的高级语言。
因为学过C语言的人最多,所以C语言是人们进行思想交流的首选语言。例如,书籍中如果要出现程序,最常见的就是C语言程序。在涉及编程能力考察的笔试和面试中,C语言通常都是必考的。