C语言现在已经很成熟它的各种语法规则、思想都已经确立起来了并对现在的很多语言产生很大的影响。但是任何事物都有其优点和缺点C语言也不例外。下面我们分别来看一下。 C语言的优点C语言的优点有三个 代码量小。 运行速度快。 功能强大。我们先看第一个优点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语言的缺点任何语言有优点就有缺点。C语言的缺点可以用下面三点来概括 危险性高。 开发周期长。 可移植性不强。我们先看第一点。假如你写同样一个程序在 Java 里面会报错而在C语言里面是不会报错的。为什么因为C语言设计的思想是你想怎么写程序就怎么写只要你的这种写法错得不是很离谱就认为你这么写有特殊的含义可以通过。但 Java 不行只要你这么写有歧义或者说这样写不太好那么它都会报错。比如C语言中你可以将一个浮点型数据赋给一个整型变量编译时只会警告因为会丢失精度但是在 Java 中这样写就会报错它在语法上就禁止你这样写。所以不同的语言对同样一个问题有不同的处理方式。大家想想这样导致的结果是什么因为有歧义的程序也可以通过这样就会有很多漏洞黑客往往会抓住这些漏洞进行攻击。所以说C语言比较危险。这也是为什么C语言比较难学的原因因为你学完之后编写一个程序很可能就是错的但又很难发现。所以前面说 C 从安全性上对C语言进行了升级。第二个是它的开发周期比较长。因为C语言是面向过程的语言面向过程语言的一个特点就是写大项目的时候很容易“崩溃”。当代码上到 10 万行的时候很容易崩溃会出现各种各样莫名其妙的错误。这时候就需要用另外一种思想将整个程序的框架重新设计一下即用面向对象的思想设计。这也是C语言现在没有 Java 流行的原因。C语言的第三个缺点是可移植性不强。这个主要是针对 Java 的。Java 的可移植性太强了所以就显得C语言的可移植性不强。什么叫可移植性就是说 Java 程序在哪个机器上都可以运行而且结果一模一样。而C语言就不行C程序在其他机器上不一定能运行。而且就算能运行结果可能也不一样。