C语言简介

1.C语言的产生和发展

      C语言是目前比较流行的高级程序设计语言之一。它不但具有一般高级语言的特点又可以像汇编语言那样,对硬件内存单元的位、字节直接进行操作,其程序运行效率高。
      C语言的发展与中小型计算机上的操作系统UNIX密不可分,它是在B语言的基础上发展
起来的,其根源可以追溯到 ALGOL 60。
     1960年出现的 ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序。1963年英国剑桥大学推出了 CPL(Combined Programming Language)语言.CPL语言在 ALGOL60的基础上接近硬件一些,但规模比较大1967 年英国剑桥大学的 Matin Richards 对CPL 语言作了简化,推出了BCPL( Basic Combined ProgrammingLanguage)语言。
     UNIX系统的早期版本是用汇编语言编写的。因汇编语言的可读性和可移植性差、编程困难等原因,1970年UNIX的开发者一美国贝尔实验室的 Ken Thompson 以 BCPL语言为基础,作了进一步简化,设计出了非常简单而且接近硬件的B语言(取 BCPL.的第一个字母),并用B语言编写了UNIX操作系统和绝大多数上层实用程序。
      B语言依赖于机器,过于简单,功能有限。为了克服B语言的局限,1972年贝尔实验室的D. M. Ritchie 在B语言的基础上设计出了C语言(取 BCPL的第二个字母),
      C语言既保持了BCPL和B语言的优点(精练、接近硬件),又克服了它们的缺点(过于简单、数据无类型等)。C语言最初只是为了描述和实现UNIX操作系统提供一种工作语言而设计的。1973年,K. Thompson和D. M. Ritchie合作把 UNIX的90%以上内核用C改写(即 UNIX第5版)。
      后来,他们对C语言多次作了改进,到1975 年 UNIX第6版公布后,C语言的突出优点引起了人们普遍注意。1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使得把C移植到其他机器时所需做的工作大大简化了。到了20世纪80年代,C开始进入其他操作系统,并很快在各类大、中、小和微型计算机上得到了广泛使用,成为当代最优秀的程序设计语言之一。
       以 1978年发表的UNIX第7版中的C编译程序为基础, Brian W. kernighan 和 Denni M.Ritchie(合称K&R)合著了影响深远的名著 The C Programming Language,该书中介绍的C语言后来被称为标准C,成为广泛使用的C语言版本的基础。1983 年,美国国家标准协会(ANSD)根据C语言问世以来各种版本对 C的发展和扩充,制定了新的标准,称为 ANSI C.。 ANSI C 比原来的标准C有了很大的发展。1988年K8R修改了他们的经典著作,按照 ANSI C标准重写了该书。1987年,ANSI 又公布了新的标准 87ANSI C。目前流行的C编译系统都是以它为基础的。现在广泛适用于PC的C语言编译系统有MS-DOS下的 Turbo C, Microsoft C, Borland C和 Quick C等,这些版本的c语言都是大同小异的。
       随着面向对编程技术的出现,在进一步扩充和完善C语言的基础上,又出现了C++,Java, C++等面向对象语言(第四代语言)是C语言的发展。但是C是C++的基础,C++语言和C语言在很多方面是兼容的。掌握了C语言,进一步学 C++就能以一种熟悉的语法来学习面向对象语言,可达到事半功倍的目的。
2. C语言的特点
C语言相对于其他高级语言而言有很多优点,下面概括介绍其主要特点。
(1)语言简洁紧凑,使用方便灵活,运算符丰富
     C语言共有32个关键字,9种控制语句,它们构成了C语言的全部指令。C程序比其
他程序简练,源程序短,所采用的表达方式简洁,书写形式自由,主要用小写字母表示,压
缩了一切不必要的成分。
     C 语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理,从而使C的运算类型极其丰富。表达式类型多样化,灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。
(2)C语言表达能力强。
      C语言可以完成通常要要由机器指令来实现的普通算术及逻辑运算,它可以直接处理字符、数字、地址,能进行位操作,能实现汇编语言的大部分功能。
(3)C语言数据结构丰富,具有现代语言的各种数据结构。
       C语言具有丰富的数据结构。其数据类型除了整型、实型、字符型、数组类型、指针类型等基本数据类型外,还可构造结构体类型、共用体类型等数据类型,能用来实现各种复杂的数据结构(如链表、树、栈等)的运算。其指针类型数据使用起来比 PASCAL 更为灵活、多样。
(4)C语言是一种结构化程序设计语言。
    结构化程序结构清晰、可读性强,代码质量和运行效率高。C语言具有功能极强的选择、循环等结构化控制语句(如 if—else 语句、,while 语句、do while 语句for语句)。   函数是构成C语言的基本单位,C语言是以函数形式提供给用户的,用函数作为程序模块以实现程序的模块化。因此,C语言是结构化的理想语言,符合现代编程风格要求。
(5)C语言可直接对硬件进行操作。
    C语言可以直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
(6)生成目标代码质量高,程序执行效率高。
相对于汇编语言而言,许多高级语言的代码效率要低得多,但C语言则不然。据统计实验表明,针对同一问题,语言的代码效率只比汇编语言低10%
(7)用C语言写的程序可移植性好(与汇编语言相比)。
移植是指程序以一午杯境不加改効成箱加政効就可以在兄一不境中返行。C语言标准化程度高,其编译系统已在多种计算机上实现,因此C语言程序的移植非常容易,基本不做修改就能用于各种型号的计算机和各种操作系统。

     但C语言也存在明显的缺点:一是C语言对数据几乎不加任何封装运用,这在数据安全方面存在极大缺陷(这也是C和C++的一大区别);二是C语言的语法限制不严格,对变量的类型约束较宽松,影响程序的安全性,比如,对数组下标不做检查等。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值