c语言与c++差别很大吗

如题所述

区别说大也不大说下也不小,您自己看吧
C 语言与 C++ 的区别有很多:
1,全新的程序 程序思维,C 语言是面向过程的,而 C++ 是面向对象的。
2,C 语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而 C++ 对于大多数的函数都是有集成的很紧密,特别是 C 语言中没有的 C++ 中的 API 是对 Window 系统的大多数 API 有机的组合,是一个集体。但你也可能单独调用 API。
3,特别是 C++ 中的图形处理,它和语言的图形有很大的区别。C 语言中的图形处理函数基本上是不能用在中 C++ 中的。C 语言标准中不包括图形处理。
4,C 和 C++ 中都有结构的概念,但是在 C 语言中结构只有成员变量,而没成员方法,而在 C++ 中结构中,它可以有自己的成员变量和成员函数。但是在 C 语言中结构的成员是公共的,什么想访问它的都可以访问;而在 VC++ 中它没有加限定符的为私有的。
4,C 语言可以写很多方面的程序,但是 C++ 可以写得更多更好,C++ 可以写基于DOSr程序,写 DLL,写控件,写系统。
5,C 语言对程序的文件的组织是松散的,几乎是全要程序处理;而 C++ 对文件的组织是以工程,各文件分类明确。
6,C++ 中的 IDE 很智能,和 VB 一样,有的功能可能比VB还强。
7,C++ 对可以自动生成你想要的程序结构使你可以省了很多时间。有很多可用的工具如加入 MFC 中的类的时候,加入变量的时候等等。
8,C++ 中的附加工具也有很多,可以进行系统的分析,可以查看 API;可以查看控件。
9,调试功能强大,并且方法多样。
鉴于当下形势, 如果要学的话就学 C#
C# 与 C++ 比较的话,最重要的特性就是 C# 是一种完全面向对象的语言,而 C++ 不是,另外 C# 是基于 IL 中间语言和 .NET Framework CLR 的,在可移植性,可维护性 和强壮性都比 C++ 有很大的改进
C# 的设计目标是用来开发快速稳定可扩展的应用程序,当然也可以通过 Interop 和 Pinvoke 完成一些底层操作,但是对于一些和底层系统相关很紧密的程序(譬如说驱动程序),还是建议用 C++ 来写
C++ 不允许在一个构造函数中调用另外一个构造函数(称为委派构造函数调用),而 C# 则允许。委派构造函数调用语法上非常自然和易懂,事实上, C++ 不提供这一特性并不是出于语法上的考虑,而是出于资源管理的考虑(这样的事情对 C++ 来说还有很多很多)。
C++ 的构造函数用于分配资源,而析构函数用于释放资源,构造函数和析构函数调用必须匹配,否则就打破了 C++ 的基本规则。如果允许委派构造函数调用,则显然会打破这一规则——构造函数被执行两次,而析构函数只执行一次。当然,对一些类,例如前面的那个 Point 来说这不是个问题,但是从语言机制的角度讲这个特性可能属于“危险”的特性。注:在最新的 C++ 标准提议草案中,Herb 等人有一个关于允许委派构造函数调用的提案,当然这很大程度上是为了方便 C++ /CLI 绑定。
在 C++ 构造函数中,虚函数调用会被编译器自动转为普通函数调用,而在 C# 构造函数中允许进行虚函数调用。 C++ 这样处理自然有它的原因——在 C++ 中,构造函数执行完成后对象才初始化好,对于多态对象来说,也就意味着构造函数在背后执行了很重要的一件事情——初始化对象的虚函数表。
如 果我们在基类的构造函数中调用了虚函数,则因为此时对象的虚函数表仍旧是基类的虚函数表,所以无法进行正确的虚函数调用。
也就是这个原因,通常我 们应该避免在构造函数中调用虚函数,因为它违背了虚函数的语义。
而在 C# 中,在对象的构造函数执行之前对象的类型信息就已经初始化好了,所以可以进行正常的虚函数调用。
基本上,这些就是两者之间的区别
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-26
严格的说完全是不同的语言,C和C++追求的目标完全不同。
一开始C++试图完全兼容C语言,并引入面向对象的概念。
但是随着时间的推移,人们发现面向对象和C语言本身就存在着不相容的问题。因此C++语言变得异常复杂,试图解决这方面的问题,到了后来只好放弃了,发展成了一种独具特色的语言。在图形界面,事件响应方面比C语言有很多改进。
C#其实是很好的语言(虽然本人很少使用C#),C#吸收了Java的面向对象,C#试图提升程序的工作效率向C语言看齐。C#放弃了和C语言的兼容性,从而使得它能够真正意义上面向对象,有严格的类型系统。
C++语言从发展过程中来看,能够兼容C使它快速发展,但是C语言是弱类型语言,void满天飞(windows下叫做HANDLE),是C语言的严重缺陷。可是void满天飞能提高效率,是操作系统所需要的。但是void怎么能是类型,是什么对象?这也导致一开始C++语言对于类型的理解出现分歧。现在基本上已经明确了,C语言中不合理的部分不再继承。这样C++就和C语言越走越远了。
个人觉得,写应用程序首推C#、Java,专业(操作系统、编译器)首推C,图形界面库复杂图形界面C++。

说说专业的感受,我现在使用的是C语言,但是考虑的是汇编。C语言编译器一般情况下可以很好的将代码转化为汇编。如果把语言比做汽车,C语言就是那种手动挡的汽车,C++就是自动挡的汽车。C++复杂,可靠性略差,C语言简单、易操作。但是对于专业用户来说,开手动挡的汽车往往能够略微在速度上超过自动挡(不考虑无级变速)的。其实高级语言最终也应该是无级变速的那种,完全不需要程序员去考虑CPU、缓存、内存、寄存器。但是目前来看,如果你用C++写一个程序,我一般情况下可以使用C语言写一个一样的程序,但是在指定的环境中比你的效率更高。但是可能也仅仅快了2-50%,相比之下,一个好的算法可能快数千倍甚至更多。而C语言还不如汇编快,能够手写汇编超过现代C编译器的人非常少。就好像如果你不是专业驾驶员,你开手动挡,可能比自动挡还慢。那还不如开自动挡省事。
手动挡是人工调节省油、速度、发动机磨损相关参数,自动挡就不用你考虑了,一个有经验驾驶员能够在需要的方面超过自动挡。但是一个没有经验的驾驶员,可能使用手动挡在各个方面都比自动挡差,甚至经常熄火。
F1方程式现在一般就是"半自动手动挡“(无级变速算作弊),实际上就是手动挡一种。因为它基本上都是针对专业用户的。可是地面上这么多汽车,手动挡的可就没有那么多了。
第2个回答  2023-04-01
当我看到类似C++要从C过度的回答的时候,心情很郁闷。C++可以说跟C可以完全脱离关系。在20年前,你可以说C++是C的扩展。但是在今天,国际标准早就把两者分开,无非C语言可以在VC环境编译,C++某些函数以前被C使用,但是现在它已经是独立的封装体。(这跟台湾是不是中国的不是一会事,免得好事者来说我有台独思想)编程语言是各自独立的,只是他们的大多数原理相同,而C++偏偏是通过C发展而来,语法非常相似,所以很多人就把C认为是学习C的基础,其实没C基础学C++反而更好,不会有那些思维模式。先入为主会影响我们后面的学习。C是面向过程的语言,强调解决一个最迫切的问题,它只考虑目前要完成什么。C++主要(注意,是主要,不是完全,它也可以面向过程)面向对象,考虑的是走哪种路径去实现任务,其抽象性更高。举例来讲:C是完成走路,它想方设法走到终点为止,不考虑路径,考虑的是每一步怎么走,思考模式不固定。C++考虑的是走什么路,然后再去考虑各条路要用什么步子(每种步伐负责走完一段路),各个步子应该怎么实现,其思考模式是从大到小。所以从来没什么:欲学C++,必先学C。的说法。更实际的说,完全掌握一门语言的精髓,你就等于掌握了与之类似的语言的精髓,说白了:精通一样,明白全部
第3个回答  2012-07-26
语法上区别不大,编程思想上区别天壤之别.
你也可以硬生生的用C++按照C的风范去写程序,只是看着别扭而已.
同样,也可以用C封装一些结构体,按照C++面向对象的思想去编程,相对于C++写要麻烦许多.
第4个回答  2012-07-26
楼上的确很详细,C++是由C发展而来的面向对象的语言。如果你要学,可以直接学C++

c++和c语言的区别是什么?
c++与c语言的区别是对象不同、函数库不同、结构不同、设计思想不同。1、对象不同C语言是面向过程的,而C++是面向对象的。2、函数库不同C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对W...

c++和C语言的区别?
4,C语言可以写很多方面的程序,但是C++可以写得更多更好,C++可以写基于DOSr程序,写DLL,写控件,写系统。5,C语言对程序的文件的组织是松散的,几乎是全要程序处理;而c++对文件的组织是以工程,各文件分类明确。6,C++中的IDE很智能,和VB一样,有的功能可能比VB还强。7,C++对可以自动生成你...

c++语言与C语言相比哪个难
3、应用场景不同,也影响着难易度的评估。C语言在系统编程、嵌入式开发等领域有其独特优势,而C++在游戏开发、图形界面处理等场景则更为流行。因此,选择适应特定应用领域的语言,其学习难度也相应变化。4、工具与库支持,也是影响学习难度的因素。C语言在编程环境与库支持方面相对成熟,而C++得益于其丰富...

c语言和c++语言有什么区别
1. 语法差异:虽然C++是基于C语言的,但两者在语法上存在诸多不同。例如,C++支持更多的数据类型和操作符号,如引用、动态内存分配等。此外,C++支持类和对象的概念,具有继承、多态等特性。而C语言更注重基本的数据操作和功能实现。2. 面向对象支持:C语言不支持面向对象编程,而C++则全面支持。面向对象...

c语言和c加加的使用是一样的吗
然而,对于需求简单、规模较小的项目或应用,C语言凭借其简洁、高效的特点,依然具备其优势。综上所述,C语言与C++在具体使用时存在差异,选择哪种语言取决于项目需求、复杂度以及开发团队的偏好。理解两者之间的关键区别有助于开发者根据实际需求灵活选择最适合的编程语言,以实现高效、高质量的软件开发。

c++和c语言的区别
C++和C语言的区别 一、主要语言特性差异 1. 动态内存管理:C语言需要程序员手动管理内存,包括分配和释放。而C++提供了自动垃圾收集机制,允许程序在不再需要时自动释放内存。这使得C++开发过程中更不易出现内存泄露问题。2.面向对象编程支持:C语言不支持面向对象编程,而C++则全面支持类、对象、继承、...

c语言和c++一样吗
c语言和c++不一样。C++是C语言的继承,进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。C语言是C++的基础,C++语言和C语言在很多方面是兼容的。c语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序...

C++和C有什么区别吗?
C++与C语言的主要区别:1. 面向对象编程:C++支持面向对象编程,而C语言不支持。2. C++有命名空间:C++中引入了命名空间的概念,可以避免命名冲突,而C语言没有命名空间。3. 异常处理:C++支持异常处理机制,而C语言不支持。4. 函数重载:C++中支持函数重载,即同名函数可以有不同的参数类型和个数,...

C语言和c++比有什么区别,哪个难学
综上所述,C++的多范式特性、强类型系统、与C语言的兼容性要求,以及其复杂而丰富的语法结构,都使得学习C++成为一项挑战性更高的任务。然而,这种复杂性也意味着C++在实现复杂系统和高效性能方面具有更大的优势,为有志于深入编程领域和追求高性能应用的开发者提供了强大的工具。

请问C语言和C++区别大吗?
不过C和C++的确是有巨大区别的,C语言简单有效,但处理大问题就很麻烦像把左轮手枪;而C++则简直是一辆坦克,功能齐备,但更肥大——无非都是兵器而已。至于说学习上C是C++的基础,倒是一大误区,枪械和火炮长得可能有点像,甚至也有点渊源,但终究全不是一回事。先学C,后学C++有好处也有坏处,应该...

相似回答