C语言是国际上广泛流行的计算机高级语言。

C语言的祖先是BCPL语言。1967年英国剑桥大学的Martin Richards推出了没有类型的BCPL(Basic Combined Programming Language)语言。1970年美国AT&T贝尔实验室的Ken Thompson以BCPL语言为基础,设计出了很简单且很接近硬件的B语言(取BCPL的第一个字母)。但是B语言过于简单,功能有限。1972—1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言。C语言既保持了BCPL和B语言的优点(精炼,接近硬件),又克服了它们的缺点(过于简单、无数据类型等),C语言的新特点主要表现在具有多种数据类型(如字符、数值、数组、结构体和指针等)。开发C语言的目的在于尽可能降低用它所写的软件对硬件平台的依赖程度,使之具有可移植性。

最初的C语言只是为了描述和实现UNIX操作系统提供一种工作语言而设计的。1973年Ken Thompson和D.M.Ritchie合作把UNIX的90%以上用C语言改写,即UNIX第5版(原来的UNIX操作系统是1969年由美国的贝尔实验室的Ken Thompson和D.M.Ritchie开发成功的,是用汇编语言编写的)。随着UNIX的日益广泛使用,C语言也迅速得到推广。1978年以后,C语言先后移植到大、中、小和微型计算机上。C语言便很快风靡全世界,成为世界上应用最广泛的程序设计高级语言。

以UNIX第7版中的C语言编译程序为基础,1978年Brian W.Kernighan和Dennis M.Ritchie合著了影响深远的名著The C Programming Language,这本书中介绍的C原因成为后来广泛使用的C语言版本的基础,它是实际上第一个C语言标准。1983年美国国家标准协会(ANSI)成立了一个委员会,根据C语言问世以来各种版本对C语言的发展和扩充,制定了第一个C语言标准草案。ANSI C比原来的C有了很大的发展。Brian W.Kernighan和Dennis M.Ritchie在1988年修订了他们的经典著作The C Programming Language,按照即将公布的ANSI C新标准重新写了该书。1989年ANSI公布了一个完整的C语言标准—ANSI X3.159—1989(常称ANSI或C 89)。1990年国际标准化组织ISO接受C89作为国际标准ISO/IEC9899:1990,它和ANSI的C89基本上是相同的。

1995年ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC9899/AMD1:1995)”。1999年ISO又对C语言标准进行修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是C++中的一些功能,命名为ISO/IEC9899:1999。2001年和2004年先后进行了两次技术修正,即2001年的TC1和2004年的TC2。ISO/IEC9899:1999及其技术修正被称为C99,C99是C89的扩充。

应该注意到,目前由不同软件公司所提供的一些C语言编译系统并未完全实现C99建议的功能,它们多以C89为基础开发。大家应该了解到自己所使用的C语言编译系统的特点。初学者所用到的初步编程知识基本上在C89的范围内,因此使用目前的C编译系统仍然可以满足对初学者的教学需要。在今后进行实际软件开发工作时,应注意使用能在更大程度上实现C99功能的编译系统。

C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可用于编写应用软件,又能用于编写系统软件。因此C语言问世以来得到迅速推广。自20世纪90年代初,C语言在我国开始推广以来,学习和使用C语言的人越来越多,成为学习和使用人数最多的一种计算机语言,绝大多数理工科大学都开设了C语言程序设计课程。掌握C语言成为计算机开发人员的一项基本功。

C语言有以下一些主要特点:

1)、语言简洁、紧凑,使用方便、灵活。C语言一共只有37个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。C语言程序比其他许多高级语言简练,源程序短,因此输入程序时工作量少。

实际上,C是一个很小的内核语言,只包括极少的与硬件有关的成分,C语言不直接提供输入和输出语句、有关文件操作的语句和动态内存管理的语句等(这些操作是由编译系统所提供的库函数来实现的),C的编译系统相当简洁。

2)、运算符丰富。C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值和强制类型转换等都作为运算符处理,从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。

3)、数据类型丰富。C语言提供的数据类型包括:整型、浮点型、数组类型、指针类型、结构体类型和共用体类型等,C99又扩充了复数浮点类型、超长整型(long long)和布尔类型(bool)等。尤其是指针类型数据,使用十分灵活和多样化,能用来实现各种复杂的数据结构的运算。

4)、具有结构化的控机语句(如if...else语句、while语句、do...while语句、switch语句和for语句)。用函数作为程序的模块单位,便于实现程序的模块化。C语言是完全模块化和结构化的语言。

5)、语法限制不太严格,程序设计自由度大。例如,对数组下标越界不进行检查,由程序编写者自己保证程序的正确。对变量的类型使用比较灵活,例如整型量与字符型数据以及逻辑型数据可以通用。一般的高级源语法检查比较严,能检查出几乎所有的语法错误,而C语言允许程序编写者有较大的自由度,因此放宽了语法检查。程序员应当仔细检查程序,保证其正确,而不要过分依赖C语言编译程序查错。

6)、C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件。C语言的这种双重性使得它既是成功的系统描述语言,又是通用的程序设计语言。

7)、用C语言编写的程序可移植性好。由于C的编译系统相当简洁,因此很容易移植到新的系统。而且C编译系统在新的系统上运行时可以直接编译“标准链接库”中的大部分功能,不需要修改源代码,因为标准链接库是用可移植的C语言写的。因此几乎在所有的计算机系统中都可以使用C语言。

8)、生成目标代码质量高,程序执行效率高。

C原来是专门为编写系统软件而设计的,许多大的软件都用C语言编写,这是因为C语言的可移植性好和硬件控制能力高,表达和运算能力强。许多以前只能用汇编语言处理的问题后来可以改用C语言来处理了。目前C的主要用途之一是编写“嵌入式系统系统程序”。由于具有上述优点,使C语言应用面十分广泛,许多应用软件也用C语言编写。

当你学完C语言之后,再来看C语言的上述这些特点,你会有更深的体会。

搜索微信公众号【balayihuier】或扫描下方二维码关注微信公众号,资深软件工程师带你手把手撸代码,从此走上人生巅峰,迎娶白富美!

C语言的发展及其特点相关推荐

  1. 【面向对象】面向对象程序设计测试题1-Java语言的发展与特性测试题

    Test1:Java语言的发展与特性测试题 问题 1 Java 是由 Sun Microsystems 公司于 1995 年推出的一门面向对象程序设计语言. 答案: 对 问题 2 自2010年Orac ...

  2. python百度百科-Python语言的发展简史

    本文主要向大家介绍了Python语言的发展简史,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. Python是我喜欢的语言,简洁.优美.易用.前两天,我很激昂地向朋友宣传Pytho ...

  3. C++的特点,及对C语言的发展

    一.C++的特点,及对C语言的发展 1.保留了C语言原有的优点,与C语言兼容: 2.增加了面向对象的机制"类class",类(calss)为C++重要的数据类型,可以实现面向对象时 ...

  4. 计算机专业必须知道的东西——C语言的发展

    计算机专业必须知道的东西--C语言的发展 概要 在1970s早期,C编程语言是作为新生的Unix操作系统的系统实现语言而设计的.衍生于无类型(typeless)语言BCPL,它进化出了一个类型结构[类 ...

  5. 1983年美国制定的c语言标准,C语言的发展历史

    一.来源 C语言产生的根源可以追溯到ALGOL60.1960年出现的ALGOL60是一种面向问题的高级语言,它离硬件比较远,不适合编写系统程序.1963年剑桥大学推出了CPL(Combined Pro ...

  6. 简述C语言的标准发展,简述C语言的发展历史

    在很久以前,大约在1970年,unix系统诞生了.它的出现,对整个计算机行业,具有划时代的意义. 比如现在服务器端最最常用的linux系列系统,就是在unix系统基础之上发展而来的. unix系统,性 ...

  7. 一次公司内部的Tech Talk中涉及到的关于语言的发展问题

    VB刚出现时就是晚绑定语言,没有任何类型.晚绑定对VB有某种核心作用.而后,VB已逐步演进为一种更"强类型"的语言,到现在,甚至可以把VB看作一种支持晚绑定的强类型语言. C#从一 ...

  8. CCF大会腾源会专场即将召开,聚焦基础软件与开发语言未来发展

    ChinaOSC 2022基础软件与开发语言开源技术论坛将于8月20日 14:00-18:00在陕西省西安高新国际会议中心召开.论坛邀请到在操作系统.中间件等基础软件领域,以及编程语言领域深耕多年的开 ...

  9. (读后摘抄)《计算机程序设计语言的发展》_王汝传

    原文是<电子工程师>里的一篇文章,以下是部分内容摘抄 第三代计算机语言:   Fortran语言 当时主要是用于科学计算 ,它 与汇编语言助记符的本质区别是引入了变量的概 念.它奠定了程序 ...

最新文章

  1. 专访Niclas Hedhman:Apache欢迎什么样的开源项目?
  2. 使用ArcGIS JS API加载WMTS图层的两种方式
  3. 单核工作法13:永不拖延(下)
  4. Hey, Apple | Decode the Week
  5. 软考解析:2017年上半年下午试卷
  6. 5G通信的一些关键技术
  7. 数学建模学习笔记(八)——分类模型
  8. Linux学习-账号管理
  9. [Python+MATLAB] 在Python中使用MATLAB (持续更新中)
  10. 【相机标定系列】标定工具仓库
  11. SQL2005之后MS SQL版本 T-SQL 新增语法、函数(二)
  12. gsp计算机管理制度,GSP飞检项目——质量体系文件
  13. PC蓝牙加串口调试助手调试蓝牙设备
  14. u盘获取计算机管理员权限,win7系统如何获得管理员权限
  15. ubuntu20.04下QT安装
  16. 链家二手房成交数据分析(采用pytorch环境)
  17. 可自定义存储数据总空间的的类int_128函数库
  18. ADS1256实现轮询
  19. Linux ps命令简介
  20. 【开源】整板资源介绍——疯壳·ARM双处理器开发板系列

热门文章

  1. 文件系统操作与编程应用
  2. [高精度]高精度的封装
  3. 【正点原子Linux连载】第三十五章 Linux内核顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
  4. js中如何截取小数点后两位数字
  5. 删除Karabiner-Elements 和 Karabiner-EventViewer提示项目被锁定
  6. 用aux口远程配置路由器
  7. 蛋蛋读UFS之三:UFS数据包UPIU
  8. 【AutoCAD For Mac 手动删除步骤】
  9. 【开源】Easy系列开源与免费流媒体音视频方案汇总(持续更新)
  10. 双鱼座男适合学计算机专业,双鱼座男生适合的职业是什么