点击上方蓝字关注我,了解更多咨询

语言是一种通用的程序设计语言。它同UNIX系统之间具有非常密切的关系。C语言是在UNIX系统上开发的,且无论是UNIX系统本身还是其上运行的大部分程序,都是C语言编写的。但是C语言并不受限于任何一种操作系统或机器。由于C语言使用用来编写编译器和操作系统,因此被称为“系统编程语言”。

C语言的很多重要概念来源于BCPL语言,BCPL对C语言的影响间接地来自于B语言。BCPL和B语言都是“无类型”的语言,而C语言提供了很多数据类型,其基本类型包括:字符、具有多种长度的整型和浮点数,以及通过指针、数组、枚举、结构和联合派生的各种数据类型。表达式由运算符和操作数组成。任何一个表达式,包括赋值表达式或函数调用表达式,都可以是一个语句。指针提供了与具体机器无关的地址算术运算。

Basic Combined Programming Language(BCPL)是一种早期的高级语言。1967年由剑桥大学的Matin Richards在同样由剑桥大学开发的CPL语言上改进而来。BCPL最早被用做牛津大学的OS6操作系统上面的开发工具。1970年,贝尔实验室的Ken Thompson在BCPL的基础上改进出了B语言,用于书写UNIX。这个名字取自BCPL中的第一个字母。B语言使用的时间更短,因为三年后的1973年同样是贝尔实验室的D.M.RITCHIE将B语言进一步改进,并且取了BCPL中的第二个字母将其命名为C语言。

C语言为实现结构良好的程序提供了基本的控制流结构:语句组、条件判断(if-else)、分支选择(switch)、循环(while、for)、提前跳出循环(break)等。

函数可以返回基本类型、结构、联合或指针型的值。任何函数都可以递归调用。局部变量通常是“自动的”,即在每次函数调用时重新创建。一个C语言程序的不同函数可以出现在多个单独编译的不同源文件中。变量可以只在函数内部有效,也可以在函数外部但仅在一个源文件中有效,还可以在整个程序中都有效。

C语言可以处理大部分计算机能够处理的对象,比如字符、数字和地址。这些对象可以通过具体机器实现的算术运算符和逻辑运算符组合在一起并移动。

C语言不提供直接处理诸如字符串、集合、列表或数组等复合对象的操作。虽然可以将整个结构作为一个单元进行拷贝,但C语言并没有处理整个数组或字符串的操作。除了由函数的局部变量提供的静态定义和堆栈外,C语言没有定义任何存储器分配工具,也不提供堆和无用内存回收工具。另外,C语言本身没有提供输入/输出功能,没有READ或WRITE语句,也没有内置的文件访问方法。所有这些高层的机制必须由显示调用的函数提供。

类似的,C语言只提供简单的单线程控制流,即测试、循环、分支和子程序,它不提供多道程序设计、并行操作、同步和协同例程。

尽管缺少某些特性看起来好像是一个严重不足(这意味必须通过调用函数来实现),但把语言保持在一个适度的规模会有很多益处,可以用比较小的篇幅将它描述出来,这样也很容易学会。尽管如此。对于大量的程序设计应用来说,C语言是一种公认的非常高效的、表示能力很强的语言。

END

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

戳“阅读原文”我们一起进步

C语言:一种通用的程序设计语言相关推荐

  1. 下面关于java语言说法不正确的是_数据库应用技术复习 求解1下面关于JAVA语言的说法,错误的是(  )。A.JAVA语言是一种面向对象的程序设计语言。B...

    数据库应用技术复习 求解1下面关于JAVA语言的说法,错误的是( ).A.JAVA语言是一种面向对象的程序设计语言.B 数据库应用技术复习 求解 1下面关于JAVA语言的说法,错误的是( ). A.J ...

  2. c加加属于面向对象的程序设计语言吗,下列语言中属于面向对象的程序设计语言是______。A、Visual BasicB、PASCALC、CD、FORTRAN...

    下列语言中属于面向对象的程序设计语言是______.A.Visual BasicB.PASCALC.CD.FORTRAN 更多相关问题 经纬仪如存在指标差,将使观测结果出现( ). 德治的约束作用主要 ...

  3. C程序设计语言第二版·新版,C程序设计语言(第2版·新版) PDF扫描版[19MB]

    C程序设计语言(第2版·新版) 内容简介: 本书是由C语言的设计者Brian W. Kernighan和Dennis M. Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作.全面 ...

  4. 乔姆斯基计算机语言,乔姆斯基(Chomsky)将文法分为4种类型,程序设计语言的大多数语法现象可用其 - 信管网...

    第39题: (  )模式定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换,使得算法可以独立于使用它们的客户而变化.以下(  )情况适合选用该模式. ①一个客户需要使用一组相关对象 ②一个 ...

  5. c语言三种循环语句,C语言三种循环语句的功能等价性

    C语言程序中的.bile,dowhile,for三种循环语句在实现不同形式的循环功能上各具特色及优点,从而使C语言程序的循环功能准确简洁地实现了实际问题中不同形式及过程的循环要求,本文从一般逻辑关系上 ...

  6. 编程爱好者学vb还是python-Python语言为什么被称为高级程序设计语言?

    Python是一种令人惊叹的编程语言,毫无疑问.从1991年的卑微开始,它现在几乎无处不在.无论您是在进行Web开发,系统管理,测试自动化,devop还是数据科学,Python在您的工作中发挥作用的可 ...

  7. c语言三种循环结构特点,c语言循环结构(c语言循环结构特点)

    1.while循环 while语句的一般形式为:while(表达式)语句.其中表达式是循环条件,语句为循环体.while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的. for语句循环1 fo ...

  8. c语言是低级的高级程序设计语言,计算机高级程序设计(C语言)

    C语言复习资料(20) 2020-01-16 20:34:54 C语言复习资料链接https://wenku.baidu.com/view/2cb3868409a1284ac850ad02de80d4 ...

  9. c语言10种复合赋值运算符,C语言复合赋值运算符

    C语言复合赋值运算符 在C语言的赋值中有一种特殊的赋值运算符,就是复合赋值运算符.下面是关于C语言复合赋值运算符的'相关介绍! 复合赋值运算符就是在赋值符"="之前加上其它二目运算 ...

最新文章

  1. Linq之延迟加载特性
  2. 超级变态的MySQL语句[2012-9-20]
  3. decimal(numeric )、float 和 real 数据类型的区别
  4. iOS快速开发框架Bee-Framework应用和解析(三) - Message, Model, Signal
  5. Android View之间的触摸事件传递图
  6. JNI中参数的传递与操作
  7. 【五级流水线CPU】—— 5. 转移指令(14条)
  8. Softmax Derivation
  9. uoj#267. 【清华集训2016】魔法小程序(乱搞)
  10. CentOS或Linux中,查看Tomcat版本的三种方式
  11. 商品订单(增删改查):新增订单;批量删除,发货;模糊查询,下拉菜单内容过滤(含时间);全选反选,列名排序
  12. 二维码扫描枪对接手册
  13. 悬挂式Notification 停留几秒后自动消失 且保留状态栏的通知(自定义消息)
  14. 计算机组成原理第三章笔记---计算机功能与互联
  15. 多元复合函数的求导法则
  16. APISpace 的 星座配对API
  17. csp-j2022比赛心得
  18. Cannot enable Hyper-V service
  19. 怎样避免无意识偏见_精神病学意识到大数据和人工智能的价值和偏见
  20. 武林秘籍之Spring AOP 切面编程的简单应用

热门文章

  1. string.intern_使用String.intern()减少内存使用
  2. 使用HazelCast进行休眠缓存:基本配置
  3. 谷歌guava_Google Guava MultiMaps
  4. 设计模式 四人帮_四人帮–代理设计模式
  5. 使用Apache Drill REST API通过Node构建ASCII仪表板
  6. JavaOne演讲者选择了您不应该错过的10个会话
  7. JDK 9早期版本安装后的Windows注册表清理
  8. 高tps、低延迟_如何在不到1ms的延迟内完成100K TPS
  9. 21世纪的设计模式:抽象工厂模式
  10. Java 8:在新的Nashorn JS引擎中编译Lambda表达式