C语言入门很轻松(微课超值版)
上QQ阅读APP看书,第一时间看更新

1.1 C语言概述

C语言是一种计算机程序设计语言。它既有高级汇编语言的特点,又有低级汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围非常广泛。

1.1.1 C语言的发展历程

图1-1 C语言的发展历程

C语言是20世纪70年代初期在贝尔实验室开发出来的一种广为使用的编程语言,其发展历程可以使用图1-1表示。

第1阶段:A语言

C语言的原型是ALGOL 60语言,也称A语言。ALGOL60是一种面向问题的高级汇编语言,它离硬件比较远,不适合编写系统程序。ALGOL 60也就是算法语言60,它是程序设计语言由技艺转向科学的重要标志,其特点是局部性、动态性、递归性和严谨性。

第2阶段:CPL语言

1963年,剑桥大学将ALGOL 60语言发展成为CPL语言(Combined Programming Language),CPL语言在ALGOL 60的基础上与硬件接近了一些,但规模仍然比较宏大,难以实现。

第3阶段:BCPL语言

1967年,剑桥大学马丁·理察斯(Martin Richards)对CPL语言进行了简化,推出了BCPL语言(Basic Combined Programming Language)。BCPL语言是计算机软件人员在开发系统软件时作为记述语言使用的一种结构化程序设计语言,它能够直接处理与机器本身数据类型相近的数据,具有与内存地址对应的指针处理方式。

第4阶段:B语言

在20世纪70年代初期,美国贝尔实验室的肯·汤普逊对BCPL语言进行了修改,设计出比较简单而且很接近硬件的语言,取名B语言。与BCPL以及FORTH类似,B语言只有一种数据类型——计算机字。大部分的操作将其作为整数对待,例如进行+、-、*、/操作,但进行其余的操作,则将其作为一个复引用的内存地址。在许多方面,B语言更像是一个早期版本的C语言,它还包括了一些库函数,其作用类似于C语言中的标准输入/输出函数库。

第5阶段:C语言

由于B语言过于简单,数据没有类型,功能也有限,所以美国贝尔实验室的丹尼斯·里奇在B语言的基础上最终设计出了一种新的语言,取名为C语言,并试着以C语言编写Unix。1972年,丹尼斯·里奇完成了C语言的设计,并成功地利用C语言编写出了操作系统,降低了作业系统的修改难度。

1978年,C语言先后移植到大、中、小、微型计算机上,风靡世界,成为最广泛的几种计算机语言之一。

1983年,美国国家标准委员会(ANSI)对C语言进行了标准化,当年颁布了第1个C语言标准草案(83 ANSI C),1987年又颁布了另一个C语言标准草案(87 ANSI C)。1994年,ISO修订了C语言的标准。最新的C语言标准是在1999年颁布,并在2000年3月被ANSI采用的C99,正式名称是ISO/IEC9899:1999。

1.1.2 C语言的优缺点

C语言是一种结构化的程序设计语言,兼有高级汇编语言和低级汇编语言的功能。C语言的特点主要表现在以下几个方面。

(1)C语言允许直接访问物理地址,能进行位操作,可以对硬件直接进行操作。

(2)移植性强。用C语言编写的程序几乎不用修改就能适用于各种型号的计算机及各种操作系统。

(3)运算符和数据结构丰富,功能强大。

(4)生成的目标代码质量高,程序执行效率高。

C语言的上述特点使其不仅适用于编写系统软件,如操作系统、编译系统等,也适用于编写应用软件,如图形处理、信息处理等,因此C语言成了比较流行的程序设计语言之一。

尽管C语言拥有众多优点,但同样也有一些缺点,由于C语言放松了语法检查以及出众的灵活性,因此加大了C语言编程出错的概率。

1.1.3 学习C语言的理由

自20世纪90年代C语言在我国推广以来,学习和使用C语言的人越来越多,因此国内多数高校都开设了“C语言程序设计”这门课,那么为什么C语言如此受欢迎呢?除了我们介绍的优点外,还可以从以下三点来解释学习C语言的理由。

(1)C语言相比其他高级汇编语言,如C++、Java、C#等是低级汇编语言,它可以让我们更好地了解计算机是如何工作的,比如数据在内存中是如何存储的,如何直接访问内存中的数据等。

(2)C语言是其他任何高级汇编语言的基础。学好C语言,可以更容易掌握其他汇编语言。汇编语言都是相通的,C语言更专注于汇编语言的实质,而不需要分散更多的精力在集成开发环境的使用和抽象的数据概念上。

(3)C语言执行效率高、速度快,这是毋庸置疑的最显著特点。