C语言的缺点是什么
C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。以下是小编整理的C语言的缺点是什么作文,欢迎大家分享。
C语言的缺点是什么 篇1
C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
C语言的缺点:
1、C语言它的最大的缺点就是,如果你的项目很复杂,大量的开发人员互相之间需要更新大段代码时,C语言可能会使事情变得异常麻烦。因为C是在面向对象方法流行之前开发的,这大大降低了C语言复杂设计的可能性。(不要以为C语言做不了大项目--世界上有太多的经典都是用C语言完成的,如果你想了解C语言的能力,不妨看看QUAKE3的源代码——很敬佩ID的无私,这份代码完全是公开的,任何人都可以使用它与修改它。);
2、输入输出相对很多语言都较为复杂。对于字符串的处理,只能通过字符数组实现。绘图操作较为复杂;
3、C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别;
4、C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握;
5、指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性;
6、类型检查机制相对较弱、缺少支持代码重用的语言结构。
C语言的优点:
1、既有高级语言的结构和编程环境,又有类似于低级语言(如汇编语言)的系统资源操纵能力。目标代码的执行效率只比汇编低10~20%,比其他高级语言高,适合解决有实时要求的问题;
2、有丰富的运算符、数据类型和表达式,对程序设计有良好的适应性;
3、支持以函数为基础结构化程序设计、多文件构成及文件独立编译,适合大型复杂程序设计;
4、语言简洁、紧凑,使用方便、灵活,书写形式自~由;
5、代码及可执行程序的可移植性好。
C语言的缺点是什么 篇2
C语言的优点有三个:
1.代码量小。
2.运行速度快。
3.功能强大。
我们先看第一个优点,C语言的代码量很小,这是什么意思呢?也就是说如果你要完成同样一个功能,用C语言编写出来的程序的容量是很小的,而用其他语言编写容量就会比较大。
比如 Microsoft Word 和 WPS,它们同样都是办公软件,功能也差不多,但 WPS 的安装文件只有 50MB 左右,而 Microsoft Word 的安装文件超过 500MB,有的甚至接近 1GB。原因就是 WPS 的内核是用C语言编写的。
C语言的第二和第三个优点是它的运行速度比较快和功能强大,我们可以通过一个例子来解释。世界上总共有三大操作系统:UNIX 操作系统是用纯C语言编写的;Windows 操作系统的内核也是用C语言编写的;Linux 操作系统仍是用纯C语言编写的。
这三大操作系统的内核全部都是用C语言编写的。为什么用C编写,因为C语言的速度最快。计算机中所有的软件都是在操作系统上运行的,如果操作系统的速度很慢,那么在它基础上运行的软件的速度就更慢了。而且计算机中的所有硬件都是由操作系统控制的。
举个简单的例子,你可以新建一个 Word 文档,这就意味着在硬盘上产生了这个文件。但是你并没有直接控制硬盘,我们是通过操作系统提供的“右键单击”等功能来新建文件的。也就是说,操作系统给我们提供了一个界面,或者说是给我们提供了一种可操作的手段,通过这个手段我们可以删除文件、新建文件、打开文件或者修改文件。
所以操作系统很重要,所有的硬件全部都是由操作系统控制的。而这么重要的东西只能用C语言来写,所以C语言很重要。为什么只能用C语言写?第一,C语言速度够快;第二,C语言可以访问硬件,所以它够强大。
为什么不能用Java写?首先,Java 太慢了;其次,Java 语言没有指针。没有指针就不能访问硬件,所以它的功能是不够的。指针是什么稍后会讲,它是C语言中非常重要的内容。
任何语言有优点就有缺点。C语言的缺点可以用下面三点来概括:
1.危险性高。
2.开发周期长。
3.可移植性不强。
我们先看第一点。假如你写同样一个程序,在 Java 里面会报错,而在C语言里面是不会报错的。为什么?因为C语言设计的思想是:你想怎么写程序就怎么写,只要你的这种写法错得不是很离谱,就认为你这么写有特殊的含义,可以通过。但 Java 不行:只要你这么写有歧义,或者说这样写不太好,那么它都会报错。
比如C语言中你可以将一个浮点型数据赋给一个整型变量,编译时只会警告,因为会丢失精度,但是在 Java 中这样写就会报错,它在语法上就禁止你这样写。所以不同的语言对同样一个问题有不同的处理方式。
大家想想这样导致的结果是什么?因为有歧义的程序也可以通过,这样就会有很多漏洞,黑客往往会抓住这些漏洞进行攻击。所以说C语言比较危险。这也是为什么C语言比较难学的原因,因为你学完之后编写一个程序很可能就是错的,但又很难发现。所以前面说C++从安全性上对C语言进行了升级。
第二个是它的开发周期比较长。因为C语言是面向过程的语言,面向过程语言的一个特点就是写大项目的时候很容易“崩溃”。当代码上到 10 万行的时候很容易崩溃,会出现各种各样莫名其妙的错误。这时候就需要用另外一种思想将整个程序的框架重新设计一下,即用面向对象的思想设计。这也是C语言现在没有 Java 流行的原因。
C语言的第三个缺点是可移植性不强。这个主要是针对 Java 的。Java 的可移植性太强了,所以就显得C语言的可移植性不强。什么叫可移植性?就是说 Java 程序在哪个机器上都可以运行,而且结果一模一样。而C语言就不行,C程序在其他机器上不一定能运行。而且就算能运行,结果可能也不一样。
【C语言的缺点是什么】相关文章:
C语言的优点缺点是什么03-21
C语言优缺点09-30
C语言的优点和缺点03-15
C语言的缺点有哪些04-15
c语言指针是什么09-02
C语言函数是什么08-23
C语言数组是什么04-11
C语言位操作是什么?04-15
C语言的特点是什么03-11