C语言:一种通用的程序设计语言

e5e92c93a761c0af9df82e2c60cca45e.png

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

f5dc198be60984a040e4194597ab2460.png

语言是一种通用的程序设计语言。它同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语言。

4ccb8cc236316d118b40a14877a82aab.png

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

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

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

d007b36a43528b1836ca9b2309bbcb35.png

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

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

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

42adfcb2142dc125aa277ed4372d0224.png

48d793cbc0709b8ef1a12d5935ab7a83.png

END

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

5e268e2b5140a723fdf0e92f81046533.png

38c0d8d48bbc09c2dd563daa3114bd5c.gif

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/338090.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可禁用计算机服务,win10哪些服务可以禁用 服务哪些可以禁止启动

win10服务哪些可以禁止启动?方法一:命令方法首先使用 Windows R 组合快捷键打开“运行”窗口,之后键入 services.msc 按下回车键,即可打开“服务”。方法二:快捷方式法在Win10桌面的“此电脑”图标上点击鼠标右键&…

如何用最短的时间学会C语言,并掌握C语言的精髓所在?

点击上方蓝字关注我,了解更多咨询及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高…

apache fop_Apache FOP与Eclipse和OSGi的集成

apache fopApache FOP是由XSL格式化对象( XSL-FO )驱动的开源打印处理器。 例如,将数据对象转换为PDF可能非常有用。 但是,事实证明,将其集成到PDE中并最终以OSGi Service的形式启动和运行有点麻烦。 因此&#xff0c…

2022年最值得学习的 5 种编程语言,你有在学习吗?

点击上方蓝字关注我,了解更多咨询作为一个初学者电脑程序员,很多人都会想知道当下主流的编程语言有哪些,哪些行业和公司都在用它们,因为这些信息可以帮助你了解想要学习的内容,使你更接近最终想用代码完成的事情。今天…

wildfly mysql_MySQL作为Kubernetes服务,可从WildFly Pod访问

wildfly mysqlKubernetes上使用Vagrant的Java EE 7和WildFly(技术提示#71)介绍了如何在使用Kubernetes和Docker托管的WildFly上运行琐碎的Java EE 7应用程序。 Java EE 7应用程序是在世界范围内交付的动手实验室 。 它使用与WildFly捆绑在一起…

想学C语言?这些你一定要知道

点击上方蓝字关注我,了解更多咨询首先,你想运行自己的C语言程序,就必须要有一个IDE(集成式开发工具)。不然想运行程序很难。这里有两个方法可以运行你的C语言程序,一个是在菜鸟网站上云运行C语言程序&#…

mongodb实验报告_Dropwizard,MongoDB和Gradle实验

mongodb实验报告介绍 我使用Dropwizard,MongoDB和Gradle创建了一个小项目。 它实际上是作为一个实验性的Guava缓存开始的,作为将计数器发送到MongoDB(或任何其他DB)的缓冲区。 我也想尝试MondleDB插件的Gradle。 接下来&#xff0…

历城职专学前计算机专业,历城职专学前教育专业2020学年第一学期技能运动会拉开帷幕...

原标题:历城职专学前教育专业2020学年第一学期技能运动会拉开帷幕技能运动会学前教育专业技能运动会1月13日,历城职专学前教育专业2020学年第一学期技能运动会拉开帷幕,技能运动会是历城职专对每一位职专学子专业技能考核的一项重要检测&…

如何正确认识C语言在当今编程领域的地位

点击上方蓝字关注我,了解更多咨询一、什么是语言,什么是C语言,有什么区别与联系?一提到语言这个词,人们自然想到的是像英语、汉语等这样的自然语言,因为它是人和人相互交流信息不可缺少的工具。大家听到我们…

理解好内存管理,C语言就不难学了

点击上方蓝字关注我,了解更多咨询任何程序运行起来都需要分配内存空间存放该进程的资源信息的,C程序也不例外。C程序中的变量、常量、函数、代码等等的信息所存放的区域都有所不同,不同的区域又有不同的特性。C语言学习者、尤其是在学习嵌入式…

智伴机器人安卓怎么设置个人热点_周五到!!宿舍断网怎么办,教你一招

对于大学里喜欢上网的小伙伴们,一旦到了断网的时间段,非常的难受,今天小白教大家一招,看到最后!!以后断网再也不怕啦,熬夜伤身,慎用!!相信很多同学都知道了手…

计算机用户guest无法删除吗,Win7怎么删除Guest账户?

原标题:Win7怎么删除Guest账户?我们都知道,访客帐户是系统附带的帐户。通常,用户给出了访客帐户。为了确保系统的安全性,它是一个限制帐户。使用客人帐户,您有权临时使用我们的计算机。但是,一些…

为什么C语言不会过时?

点击上方蓝字关注我,了解更多咨询评价任何一门编程语言,都是招人骂的。永远是这样。就像是春寒料峭的季节, 街上穿棉袄和穿单衣的擦肩而过,双方一定是同时在心里出现了两个字:“傻逼!”这个在心理学上有个专…

机械装备计算机控制技术考试题,武汉理工大学机电工程学院研究生课程考试试题(肖峻)...

武汉理工大学机电工程学院研究生课程考试试题课程名称 机械装备计算机控制技术Ⅱ一.简答题(合计30分,每题10分)1、计算机控制系统按系统结构和控制功能分为哪几种?分别描述其特点。2、简述几种常用的数字滤波方法及其优、缺点。如何选用各种数…

java 性能 优化_Java十大简单性能优化

java 性能 优化关于“ web scale ”这个流行词有很多炒作,人们花了很多时间来重新组织他们的应用程序体系结构,以使其系统“规模化”。 但是什么是扩展,我们如何确保可以扩展? 缩放的不同方面 上面提到的炒作主要是关于扩展负载…

cx_oracle写日志信息_看日志痛苦——可能是你方法不对

看日志,是研发的日常工作,相信你已经从各种报错日志中查出许多BUG,但也被冗长、复杂的日志困扰过无数次。在日常工作中,我也经常痛苦于看日志,一般是这些日志长得面目狰狞:日志文件太大,打开都很…

在Swift中使用C语言的指针

点击上方蓝字关注我,了解更多咨询Objective-C和C语言经常需要使用到指针。Swift中的数据类型由于良好的设计,使其可以和基于指针的C语言API无缝混用。同时 Swift也可以自动处理大多数将指针作为参数的情况。在这篇文章里,我们可以看到在Swift…

android 音频合成_【Android工具】用手机测量噪声的工具软件,噪声仪分贝计,量化噪声声音工具...

今天分享一个通过手机麦克风测量环境噪声的工具——声级计(噪声仪)。本来是要分享另一款的,但下载下来的是xapk的安装包,太麻烦了,功能差不多,大家就先用这款吧,有条件的朋友可以去play自己下载。软件名称:…

cassandra_Apache Cassandra和低延迟应用程序

cassandra介绍 多年来, Grid Dynamics拥有许多与NoSQL相关的项目,尤其是Apache Cassandra。 在这篇文章中,我们要讨论一个给我们带来挑战的项目,而我们在该项目中试图回答的问题今天也仍然适用。 数字营销和在线广告在2012年很受…

浅析五种C语言内存分配的方法及区别

点击上方蓝字关注我,了解更多咨询在C语言中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常…