大家好,今天小编关注到一个比较有意思的话题,就是关于c语言是接近的问题,于是小编就整理了2个相关介绍c语言是接近的解答,让我们一起看看吧。
什么是高级语言和低级语言?
高级语言:人类可以读懂的语言
低级语言:对人类可读性很差
只有0跟1组合的语言
低级语言更接近硬件,比如汇编、机器代码等,是针对具体的硬件编程。优点是执行效率高,缺点是做出来的程序可移植性差,难学。高级语言更接近自然语言表达的逻辑,易学,做出来的程序可移植性高,缺点是执行效率比低级语言差一些,比如c++、Java等
所谓低级语言高级语言就是看是不是接近机器底层,是不是语法更接近于人类的语言,理论上机器只看得懂二进制0和1,如果你要写个程序怎么写?01010100110?懂啥意思吗?不是有个段子说没带windows安装盘,然后有个高手拿把小刀在空白光盘上一顿刻,windows安装盘刻出来了。虽然是段子,但你别说理论上也可能啊,毕竟你只要知道怎么刻0和1就行了。但是你写的程序不能只让机器看懂啊,还得让人能看懂,至少过几天你自己也需要还能看懂啊。于是有个汇编这种低级语言,这个低级并不是说它很弱,而是它很接近系统底层,直接用指令集进行编程,效率自然杠杠的,但是还是难懂啊,就算写个1+1=2也要费了老劲了。于是C语言就出来了,(当然期间还诞生了其他语言),C语言很强大啊,已经有点像人类的语言了,至少你看着代码能读懂了,而且性能也不差,因为它的很多特性还是很接近底层。其实C语言已经算高级语言了,更不要说后来的C++ JAVA Python等等,现在很多语言看起来基本就像人类的语言了,所以很容易入门,也都大同小异,只是各有侧重领域。
这个我也只懂大概,不过也不需要理解太深,所谓的低级不是指贬义词,指的是像c,c++这种早先出来的语言,比较繁琐,对程序员要求也较高,他们需要手动释放管理内存等等。
高级语言像J***a,Python参照c,c++出来的语言,他们更智能,很多工作都会自动帮你处理好,不需要你手动释放内存了等等,这样对使用者要求也低些,更加简单易上手。
综合来说,高级语言相对于低级语言更容易理解,使用。但是,使用者最后还是需要懂内存等原理的。
面向对象和面向过程最本质的区别是什么?
面向对象和面向过程最本质的区别在于考虑问题的出发点不同,面向过程是以事件流程为考虑问题的出发点,而面向对象则是以参与***的角色(对象)为考虑问题的出发点,所以面向对象在处理问题时更加灵活。目前,面向过程的语言更多被用于处理底层业务,而面向对象编程则更多用于实现一些业务逻辑复杂的大型系统。
从结构上来说,面向过程的特点是模块化和流程化,而面向对象的特点是封装、继承和多态,这里面就有本质的区别了。面向过程以功能(函数)作为模块化的基础,而面向对象则以类作为功能的组织基础,而类需要一个“抽象”的过程。比如在J***a中,完成一个功能的调用需要三个步骤,分别是类的定义,对象的创建,方法的调用,看一个例子:
而C语言的功能实现则方便得多,看一个例子:
通过这个例子我们发现,J***a更麻烦一些,J***a需要先根据功能抽象出类,然后创建出对象,再然后通过对象才能完成对方法的调用,而C语言则只需要函数的定义和调用,并不需要创建对象,所以C语言的执行效率更高。
但是由于有了对象的概念,面向对象编程的灵活性更强,对象与对象之间也可以产生比较复杂的交互关系,也因此会有继承和多态的概念。继承的核心特点是复用,避免模块间重复和模块内重复的问题,而多态的特点是灵活,针对于不同情况可以做出更加灵活的处理方式。当然,由于面向对象需要一个抽象的过程,所以在效率方面就没有面向过程语言那么高。关于面向对象的细节,我在头条上写过专门的文章,大家可以关注我的头条号并查看,这里就不赘述了。
我使用J***a和C语言的时间都比较久,我在头条上也写了关于J***a编程方面的[_a***_]文章,如果有编程方面的问题,也可以咨询我。
谢谢!
到此,以上就是小编对于c语言是接近的问题就介绍到这了,希望介绍关于c语言是接近的2点解答对大家有用。