C语言有什么优点什么缺点?有什么特别之处?


优点  1. 简洁紧凑、灵活方便  C语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。  2. 运算符丰富  C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。  3. 数据结构丰富  C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。  4. C是结构式语言  结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。  5. C语法限制不太严格,程序设计自由度大  虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。  6. C语言允许直接访问物理地址,可以直接对硬件进行操作  由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。  7. 生成目标代码质量高,程序执行效率高  一般只比汇编程序生成的目标代码效率低10へ20%。  8. C语言适用范围大,可移植性好  C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。 

缺点  1. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。  2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。  [C语言指针]  指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作也给它带来了很多不安全的因素。C++在这方面做了很好的改进,在保留了指针操作的同时又增强了安全性。Java取消了指针操作,提高了安全性,适合初学者使用。

特别的地方:C是贴近硬件的语言,所以很高效,所以是操作系统编写的不二选择,很多语言的核心都是C写的,所以,你可以不学C语言,但是C语言无处不在。

时间: 2025-01-14 10:31:26

C语言有什么优点什么缺点?有什么特别之处?的相关文章

流行的9个Java框架介绍: 优点、缺点等等

流行的9个Java框架介绍: 优点.缺点等等 在 2018年,Java仍然是世界上最流行的编程语言.它拥有一个巨大的生态系统,在全世界有超过900万Java开发人员.虽然Java不是最直接的语言,但是您不需要从头编写Java程序.有许多优秀的Java框架可以编写在Java虚拟机上运行的web和移动应用程序.微服务和REST api. Java框架允许您关注应用程序的业务逻辑,而不是编写数据库连接或处理异常等基本功能.此外,如果您有Java方面的经验,您可以快速入门.这些框架都使用相同的语法,使用

SSH的项目中,使用getHibernateTemplate 与 getSession有什么的区别?优点与缺点是什么

SSH的项目中,使用getHibernateTemplate 与 getSession有什么的区别?优点与缺点是什么,谢谢回答! 悬赏分:0 - 解决时间:2008-10-7 09:42 SSH的项目中,使用getHibernateTemplate 与 getSession有什么的区别?优点与缺点是什么,谢谢回答! 问题补充:谢谢 451182 主要是想了解一下这两个关于事物这一块有什么不同?谢谢! 提问者: zhongbin007 - 试用期 一级 最佳答案 getHibernateTempl

”舍得“大法:把自己的优点当缺点倒出去

和几个创业者在网上或线下聊天,聊着聊着几个人就开始激动或吐槽了,无外乎几个原因:1)创业成效还不见 2)亏损现象不能扭转 3)产品打不出去 ,打了广告很多钱都无法把产品推出去 我暂时不去主观和客观的评价这些现象,因为我自己也具备以上三点"死穴",尤其第三点.不过幸好的是,我心态略比他们好一些,如果不猛灌我几杯"猫尿",我是基本不会吐槽的. 玩笑过后,我想起一本描写胡雪岩怎么创业的书,里面有个案例顿时在我大脑中进行了模糊匹配. 据说胡雪岩创业初期混的也很惨. 大家知道

Gevent: 优点,缺点,以及不优美的地方

原始出处:                    In the Milky way 我不想用很多时间去描述Gevent是什么,我想它官网上的一句总结足矣: "Gevent是一种基于协程的Python网络库,它用到Greenlet提供的,封装了libevent事件循环的高层同步API." 接下来我将阐述在Mixpanel中一个内部项目使用Gevent的经验. 为了这篇文章我还动手写了几个性能小测试.(Whipped up这里的意思让我迷惑哎- -) 优点 首先Gevent最明显的特征就是

spring的优点与缺点

最近面试遇到面试主考官,有两次都问到了两次关于spring的优点与缺点,所以觉得这个问题·值得好好思考总结一下. spring这个有两大概念:IOC和AOP IOC反转控制(也可以叫DI依赖注入,其实都是一个意思,角度不同而已), 就是之前对象依赖关系不用你来维护,由IOC容器来维护(对象间依赖关系不用解释了吧,就是类与类之间的依赖关系,使用与被使用.举个例子电器工作需要电,电器类与电类之间是依赖关系,之前这些要你自己去完成它们的依赖关系,有了IOC容器这工作就就交给IOC容器来完成.) 在白话

Lua语言的特别之处

所谓特别,是相对的,是相对别的主流语言而言,有些也可能只是我个人看法. 1. 函数定义与调用,与代码位置的先后顺序有关,例如 calculate() function calculate() .... end 运行起来会报错,说方法calculate未定义.如果先写function calculate(),再调用,就OK了.这与Java,C#等都不一样,Lua不是整体解析执行的,而是按顺序从前往后顺序解析的. 2. 数组(table)的index号是从1开始的,而不是0. 所以tableX[0]

XMPP——xmpp协议详解、优点、缺点及优化思路

XMPP(Extensible Messaging and Presence Protocol,前称Jabber)协议介绍 可扩展消息处理现场协议(eXtensible Messaging and Presence Protocol , XMPP) 是一种基于可扩展标记语言(eXtensible Markup Language, XML)的近端串流式即时通信协议.它将现场和上下文敏感信息标记嵌入到XML 结构化数据中, 使得人与人之间.应用系统之间以及人与应用系统之间能即时相互通信 XMPP是一

Selenium IDE优点与缺点

优点: 1.录制功能快捷方便,上手快 2.代码转换功能易用,容易生成其他编程语言的测试用例代码 3.支持跨域 4.不依赖java允许时环境 缺点: 1.录制回放方式的稳定性和可靠性有限 2.只支持Mozilla Firefox 3.只支持Selense Command语言,虽然可以导出成其他编程语言的测试用例 4.对于复杂的页面逻辑其处理能力有限

浅谈ajax的优点与缺点

AJAX (Asynchronous Javascript and XML) 是一种交互式动态web应用开发技术,该技术能提供富用户体验. 完全的AJAX应用给人以桌面应用的感觉.正如其他任何技术,AJAX有它自己的优缺点.下面我列出了一些重要的场景,你在基于web的应用的开发中使用 时一定要注意. AJAX的优点        改善的用户体验- AJAX提供的更丰富的用户体验是其主要优点.AJAX允许网页持续更新,但只需要和服务 器交互很少的数据.这样,就能在不必整个更新网页的情况下更新网页的