C语言的特点可以概括如下:

1、C语言简洁、紧凑、灵活

C语言的核心内容很少,只有32个关键字,9种控制语句;程序书写格式自由,压缩了一切不必要的成分。

2. 表达方式简练、实用

C语言有一套强有力的运算符,达44种,可以构造出多种形式的表达式,用一个表达式就可以实现其它语言可能要用多条语句才能实现的功能。

3. 具有丰富的数据类型

数据类型越多,数据的表达能力就越强。C语言具有现代语言的各种数据类型,如:字符型、整型、实型、数组、指针、结构体和共用体等。可以实现诸如链表、堆栈、队列、树等各种复杂的数据结构。其中指针使参数的传递简单、迅速,节省内存。

4. 具有低级语言的特点。

具有与汇编语言相近的功能和描述方法,如地址运算、二进制数位运算等,对硬件端口等资源直接操作,可充分使用计算机资源。

因此,C语言既具有高级语言便于学习和掌握的特点,又具有机器语言或汇编语言对硬件的操作能力。所以,C语言既可以作为系统描述语言,又可以作为通用的程序设计语言。

5. 是一种结构化语言,适合于大型程序的模块化设计

C语言提供了编写结构化程序的基本控制语句,如if~else语句、switch语句、while语句、do~while语句等。C程序是函数的集合,函数是构成C程序的基本单位,每个函数具有独立的功能,函数之间通过参数传递数据。

除了用户编写的函数外,不同的编译系统、操作系统都相伴还提供了大量的库函数供用户使用,如输入输出函数、数学函数、字符串处理函数等,灵活使用库函数可以简化程序的设计。

6. 各种版本的编译系统都提供了预处理命令和预处理程序

预处理扩展了C语言的功能,提高了程序的可移植性,为大型程序的调试提供了方便。

7. 可移植性好。

程序可以从一个环境不经改动或稍加改动就可移植到另一个完全不同的环境中运行。这是因为系统库函数和预处理程序将可能出现的与机器有关的因素与源程序隔开,这就容易在不同的C编译系统之间重新定义有关内容。

8. 生成的目标代码质量高

由C源程序得到的目标代码的运行效率比用汇编语言写的也不过只低10%到20%,可充分发挥机器的效率。

9. C语言语法限制不严,程序设计自由度大

C程序在运行时不做诸如数组下标越界和变量类型兼容性等检查,而是由编程者自己保证程序的正确性。C语言几乎允许所有的数据类型的转换,字符型和整型可以自由混合使用,所有类型均可作逻辑型,可自己定义新的类型,还可以把某类型强制转换为指定的类型。

缺点:

1. C程序的错误更隐蔽

C语言的灵活性使得用它编写程序时更容易出错,而且C语言的编译器不检查这样的错误。

与汇编语言类似,需要程序运行是才能发现这些逻辑错误。

C语言还会有一些隐患,需要程序员重视,比如将比较的"=="写成赋值"=",语法上没有错误,这样的逻辑错误不易发现,要找出来往往十分费时。

2. C程序有时会难以理解。

C语言语法成分相对简单,是一种小型语言。但是,其数据类型多,运算符丰富且结合性多样,使得对其理解有一定的难度。

有关运算符和结合性,人们最常说的一句话是“先乘除,后加减,同级运算从左到右”,但是C语言远比这要复杂。

发明C语言时,为了减少字符输入,C语言比较简明,同时也使得C语言可以写出常人几乎无法理解的程序。

3. C程序有时会难以修改

考虑到程序规模的大型化或者说巨型化,现代编程语言通常会提供“类”和“包”之类的语言特性,这样的特性可以将程序分解成更加易于管理的模块。

然而C语言缺少这样的特性,维护大型程序显得比较困难。

感谢大家的阅读,希望大家收益多多。

本文转自:https://tigerisland.blog.csdn.net/article/details/51719922

推荐教程:《C语言》

更多相关文章

  1. strcmp在c语言中是什么意思?
  2. 你知道C语言的标识符命名规则是什么吗(详解)
  3. main函数是C语言的唯一起点,对么
  4. C语言中的每条可执行语句都将转换成什么
  5. c语言中*是什么意思?
  6. c语言有且唯一的函数是什么?
  7. c语言文件读写函数有哪些?
  8. C语言中do while语句的用法是什么?
  9. c语言如何统计字符串中每个字符出现的次数?

随机推荐

  1. 【麦子学院】03.web前端开发之html5本地
  2. HTML的CHECKBOX后面的文字点击同时选中
  3. 限制HTML输入,只允许粘贴
  4. 调整另一个div的div onclick,过渡效果
  5. 如何在HTML主体上设置网格ExtJS,高度为100
  6. 2003生成 注释web页问题,第二级的html 内
  7. 制作一个可滚动的div,它不会滚动身体的其
  8. 使用换行符将textarea的文本复制到div中
  9. js去除html标记的测试问题。很多分!
  10. 关于INPUT的autocomplete="off" 属性(浏览