c语言与汇编语言、c++语言等有啥不同呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言与汇编语言、c++语言等有啥不同呢?相关的知识,希望对你有一定的参考价值。

C语言是一种计算机程序设计语言,同样的C++,Java,汇编等都是程序设计语言,但是各有各的有点,c语言有一下特点:
1.
C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C
语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
  2.
C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C
语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
  3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。
  4.
C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。
  C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。
参考技术A 不同的地方,太多了。
你应该问:这三种语言,有什么相同呢?

相同很少的。

由c语言转向c++,我们需要做什么?


在此送大家一份小礼物,公众号内回复linux0001即可获得一本Linux电子教程
“c语言和c++到底有什么不同和联系呢?”
毫无疑问,c语言和c++是两种不同的语言,但是又有着千丝万缕的联系。 语法上c语言与c++一脉相承,但是实际用起来效果或者程序结构又完全不一样 ,这让我们产生了不小的疑惑,c和c++到底是什么关系呢?我们应该怎样去学习这两种语言?

由c语言转向c++,我们需要做什么?

目录

一、c语言和c++一脉相承

二、c++面向对象的优势

三、一些建议

一、c语言和c++一脉相承

首先我们要明确,c语言和c++是有血缘关系的 。这个我们可以追溯到早期,在早期c++是没有自己的编译器的,c++要通过编译器编译成c语言代码,再由c语言编译器编译成机器代码,随着后来越来越重视面向对象的语言的发展,c++也就拥有了自己的一套编译体系。虽然在现在我们尽量把这两种语言区别开,但是好像编译器并不给面子,windows下的微软编译器(cl.exe),Linux下的G++编译器,mac下的Clang编译器都同时支持c和c++编译,统称为C/C++编译器。编译上的区别我们平时不容易察觉到,但是在实际程序编写时,我们会发现这两种语言的基本语法完全一样,c++完全可以使用c语言的数据类型,没错,使用c语言的方式去写c++完全没问题,但是我们不能完全这样做,具体原因我将在下文介绍。

由c语言转向c++,我们需要做什么?

其次我们要知道,c++是作为c语言的一个拓展存在的 。在科技不断发展的今天,c语言已经不能够完全满足众多项目的编程需要,所以科学家为了满足生产力的需要,c++就应运而生了。我们在说这两种语言的区别的时候,总会笼统的说一句c语言面向过程,c++面向对象,这是没有错的。面向过程的意思就是要求我们去用基本的库去写一些功能来完成我们的项目,面向对象的意思是我们去利用前辈留给我们的财产(指各种各样的库),去完成程序的设计。其实面向对象不仅仅是指我们会有丰富的库,这些库是基于编程语言的优势完成设计的,那么这样的话,我们作为使用库的程序员,同样可以利用语言的优势去写库留给有需要的人去用,我觉得这才是面向对象语言的核心。就c++来说,由于语言的本身的关系,不足以支持我们去写一些比较高级的通用库去完成功能。关于c++是怎么利用自身优势来完成库的编写,我将在下文介绍。

由c语言转向c++,我们需要做什么?

二、c++面向对象的优势

上文我们留了两个坑: 我们怎样利用c++的优势去完成代码的编写我们为什么不能完全按照c语言的方式去写c++代码 How and Why?
我们首先来说 c++的优势是什么 。(本段的内容截取自2月12号的推文《一个好的程序架构应该是什么样的?》)
c++拥有 封装 继承 多态 三大特性
1、封装。 封装指的是我们可以在类中将我们不希望外界调用的函数或者成员变量设置成私有(private)或者保护(protected)成员的形式,而外界需要调用的设置成公共成员(public)的形式, 这样不仅保护了我们的函数不被改变,并且也告诉后来者不必去动我的私有和保护成员的函数和变量
2、继承。 继承指的是一个类被定义了之后,可以去由其他有需要的 类去继承父类的成员公共或者受保护成员的变量和函数, 这样使得我们很多函数和变量不必去重复定义,减少代码量
3、多态。 多态指的是定义在父类内的虚函数,可以被子类重新定义,这个过程我们称之为“重写”, 这样做的好处是我们可以不必多次在每个文件中去定义逻辑相同的函数,大大提高了函数的重用
此外,c++还拥有独特的 命名空间 这一概念。这个在解决变量命名重复方面起着很大的作用。
说完这三大特性,我想上面两个问题也就解决了。由于 c++拥有相对于c语言来说的三大特性提供能量 ,程序必然比啥都没有的c语言简洁许多。c++可以对c语言说:你有的我有,你没有的我还有,气不气!

三、一些建议

此处是我在学习c语言和c++初期感到疑惑的一些问题,我把他分享给大家。
1、在学习c++之前我有必要学习c语言吗?
一口吃不出个胖子,任何事情都要循序渐进。在我来看, 确实是有必要的,至少基本语法是要了解的 。在学完c语言再去看c++的书你会发现,有大概半本的内容是你在学习c语言的时候学到的,这样学起来相当轻松。
2、我有c语言基础,那我该怎么学习c++呢?
在学习c++初期,大部分人犯了同一种错误,就是真的把c++当作c语言来学,学来学去学到最后用c++写出来的代码还是和c语言一样的结构。显然这样学是不对的。 学习c++我觉得切入点一定是从类切入 ,这样你学一段时间就会发现,c++和c语言完全不同。类可以说是c++的精髓,不妨在学习的时候贯穿始终。
3、我真的有必要学习c++吗?
若是有时间我建议学一学,毕竟技多不压身,但是前提是不要丢了自己很了解的语言,因为那可能是你主要的阵地,这个顶多算加分项 。你想想,自己写的单片机 串口程序,上传到自己写的上位机,看着自己检测到的数据编程一幅幅美妙的图形,这是一个多么幸福的时刻。这段话不仅限送给纠结于学不学c++,其他的语言也一样。

已经看到这里啦!喜欢本文的小伙伴请点一下右下角的在看鼓励一下作者吧~





推荐阅读:



关注公众号,后台回复「1024」获取学习资料网盘链接。

欢迎点赞,关注,转发,在看,您的每一次鼓励,我都将铭记于心~

嵌入式Linux


以上是关于c语言与汇编语言、c++语言等有啥不同呢?的主要内容,如果未能解决你的问题,请参考以下文章

Object C和C++有啥区别

C语言中的.c和.cpp有啥区别?

c语言和c++有啥关系

C语言的主要用途是啥?它和其他高级语言有啥异同?求答案

C语言中++c与c++有啥区别?

C++和VisualC++有啥区别?