C语言的“简要”介绍

  • C语言是国际上广泛流行的计算机高级语言。
  • C语言又是一种用途广泛、功能强大、使用灵活的过程性编程语言既可用于编写应用软件,又能用于编写系统软件。

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

(1)C语言一共只有37个关键字,9种控制语句。

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

(3)C语言提供的数据类型包括:整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型等,C99又扩充了复数浮点类型、超长整型(long long)和布尔类型(bool)等。

(4)C语言具有结构化的控制语句(如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语言编写。

 

既然提到计算机高级语言这个概念,那我们再简单的聊一下什么是计算机语言,计算机语言又经历了哪几个发展阶段吧。

  • 计算机语言

那到底什么是计算机语言呢?就让我们简单举个例子吧。人和人之间的交流需要通过语言,而不同的国家、地区也就需要不同的语言。可想而知,当人和计算机进行交流时也要解决语言问题,需要创造一种计算机和人都能识别的语言,这就是计算机语言。

  • 计算机语言经历的发展阶段

1、机器语言

计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成的指令。在计算机发展的初期,一般计算机的指令长度为16即以16个二进制数(0或1)组成一条指令,16个0和1可以组成各种排列组合。例如,用1011011000000000让计算机进行一次加法运算。人要使计算机知道和执行自己的意图,就要编写许多条由0和1组成的指令,然后要用纸带穿孔机人工的方法在特制的黑色纸带上穿孔,在指定的位置上有孔代表1,无孔代表0。一个程序往往需要一卷长长的纸带,在需要运行此程序时就将此纸带装在光电输入机上,当光电输入机从纸带读入信息时,有孔处产生一个电脉冲,(“1”)指令变成信号,让计算机执行各种操作。这种计算机能直接识别和接受的二进制代码称为机器指令,机器指令的集合就是计算机的机器语言。在语言的规则中规定各种指令的表示形式以及它的作用。

显然,机器语言与人们习惯用的语言差别太大,难学、难写、难记、难检查、难修改、难以推广使用。

2、符号语言

为了克服机器语言的上述缺点,人们创造出符号语言,它用一些英文字母和数字表示一个指令,例如用ADD代表“加”,SUB代表“减”,LD代表“传送”等。如上面介绍的那条机器指令可以改用符号指令代替:ADD A,B(执行 A+B=>A,将寄存器A中的数与寄存器B中的数相加,放到寄存器A中)

显然,计算机并不能直接识别和执行符号语言的指令,需要用一种称为汇编程序的软件,把符号语言的指令转换为机器指令。一般,一条符号语言的指令对应转换成一条机器指令,转换的过程称为“代真”或“汇编”,因此,符号语言又称为符号汇编语言汇编语言。

不同型号的计算机的机器语言和汇编语言是互不通用的。机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言。由于“贴近”计算机,或者说离计算机“很近”,称为计算机低级语言。

3、高级语言

为了克服低级语言的缺点,20实际50年代创造出了第一个计算机高级语言—FORTRAN语言。它很接近于人们习惯使用的自然语言和数学语言,程序中用到的语句是用英文单词表示的,程序中所用的运算符和运算表达式和人们日常所用的数学式子差不多,很容易理解。程序运行的结果用英文和和数字输出,十分方便。

这种语言功能很强,且不依赖于具体机器,用它写出的程序对任何型号的计算机都适用(或只需作很少的修改),它与具体机器距离较远,故称为计算机高级语言。当然,计算机也是不能直接识别高级语言程序的,也要进行“翻译”,用一种称为编译程序的软件把高级语言写的程序(称为源程序)转换为机器指令的程序(称为目标程序),然后让计算机执行机器指令程序,最后得到结果。高级语言的一条语句往往对应多条机器指令。

  • 高级语言经历的发展阶段

1、非结构化的语言

初期的语言属于非结构化的语言,编程风格比较随意,只要符合语法规则即可,没有严格的规范要求,程序中的流程可以随意跳转。人们往往追求程序执行的效率而采用了许多“小技巧”,使程序变得难以阅读和维护。早期的BASIC、FORTRAN和ALGOL等都属于非结构化的语言。

2、结构化语言

为了解决以上问题,提出了“结构化程序设计方法”,规定程序必须由具有良好特性的基本结构(顺序结构、分支结构、循环结构)构成,程序中的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。这种程序结构清晰,易于编写、阅读和维护。QBASIC、FORTRAN 77和C语言等都属于结构化的语言,这些语言的特点是支持结构化程序设计方法。

以上两种语言都是基于过程的语言,在编写程序时需要具体指定每一个过程的细节。在编写规模较小的程序时还能得心应手,但在处理规模较大的程序时就显得力不从心了。在实践的发展中,人们又提出了面向对象的程序设计方法。程序面对的不是过程的细节,而是一个个对象,对象是由数据以及对数据进行的操作组成的。

3、面向对象的语言

近十多年来,在处理规模较大的问题时,开始使用面向对象的语言。C++,C#,Visual Basic和Java等语言是支持面向对象程序设计方法的语言。

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值