
第1章 C语言概述
1.1 C语言简介
1.1.1 C语言的产生
20世纪60年代,随着计算机科学的迅速发展,高级程序设计语言Fortran、Algol60等得到了广泛的应用,然而,还缺少一种可以用来开发操作系统和编译程序等系统程序的高级语言,人们只能使用机器语言或汇编语言来编写这些程序,但机器语言和汇编语言存在着不可移植、可读性差、研制软件效率不高等缺点,给编程带来很多不便。于是,在20世纪70年代初,C语言应运而生。
C语言的出现是与UNIX操作系统紧密联系在一起的。它最早源于1968年发表的CPL(Combined Programming Language)语言。C语言的许多重要思想则来源于M.Richards在1969年研制的BCPL(Basic Combined Programming Language)语言,以及在BCPL语言的基础上,由K.Thompson在1970年研制、开发的B语言。K.Thompson用B语言为PDP-7计算机编写了第一个UNIX操作系统。随后D.M.Ritchie于1972年在B语言的基础上开发出C语言,并用C语言完成了在PDP-11计算机上实现的UNIX操作系统。UNIX操作系统的巨大成功也是C语言的巨大成功。
目前,从微型计算机到大型计算机都支持C编译程序。C编译程序不仅能在UNIX操作系统下运行,而且能在DOS、Windows和Linux操作系统下运行。由于C语言本身具有的优越性,它已经成为在各种计算机上、从系统软件设计到工程应用程序开发都能使用的一种高级程序设计语言。
1.1.2 C语言的特点
C语言主要有如下特点:
1)表达能力强且应用灵活。C语言是介于汇编语言和高级语言之间的一种程序设计语言。C语言既有面向硬件和系统、像汇编语言那样可以直接访问硬件的功能,又有高级语言面向用户、容易记忆、便于阅读和书写的优点。
2)程序结构清晰且紧凑。C语言是一种模块化程序设计语言,支持把整个程序分割成若干相对独立的功能模块,并且为模块间的相互调用以及数据传递提供便利,这种模块化的程序结构与系统工程的结构要求相一致。
3)书写简单、易学。
4)目标程序的质量高。C语言提供了一个较大的运算符集合,并且其中大多数运算符可直接翻译成机器代码,因此,由它编写的源程序所生成的机器代码质量较高。
5)可移植性好。C语言通过调用输入、输出函数实现输入、输出功能。而这些函数属于独立于C语言的程序模块库,因此,C语言本身并不依赖于计算机硬件系统,从而便于在不同的计算机之间实现程序的移植。
6)C语言是结构化程序设计语言,有利于对程序流程实现有效地控制。
7)C语言提供了丰富的数据类型。它不仅有字符型、整型以及实型等基本数据类型,而且支持构造类型数据,如数组和结构体等,从而可以适应不同的程序需求。
8)C语言支持指针和指针变量。允许通过指针和指针变量直接访问内存,从而使程序设计更具灵活性。
由于C语言具有上述众多特点,已经成为程序设计的主要语言之一,被广泛应用于微处理机和微型计算机的系统软件和应用软件的开发。