c++和c语言有什么区别?

如题所述

C语言是结构化和模块化的面向过程的语言,C++语言是面向对象的程序设计语言。C++语言是C语言的超集,也就是说学会了C++,你其实已经把C语言学会了。至于说有什么区别,应该说是编程思想的区别吧,C是基于过程的,强调的是程序的功能,以函数(功能)为中心。C++是面向对象的,强调程序的分层、分类,以抽象为基础,进行对象的定义与展示,即程序设计。具体说来话长。建议你学习C++的时候,学会用面向对象的方式思考和编程。现在在开发大项目的时候,都是应用面向对象的分析和设计的技术。

C和C++的区别有什么
今天在网易上看到有人问C和C++的区别有什么,在这里简略说点.
其他的东西都不需要多说,就象类,继承,引用等,大家都知道.
这里讲的是调用编译的区别.大家看WIN32 SDK的头文件,总是可以看到

ifdef __cplusplus
extern "C"

endif

ifdef __cplusplus

endif

这个就是直接能够体现实际编程时区别的地方. 在WIN系列下.所有的WIN32 SDK提供的LIB都是以C的形式存在的.当然,C和C++同样都支持C,STDCALL,FASTCALL调用.为什么系统提供C编译器编译的LIB而不是C++编译的LIB呢?这里其实就是C和C++编译器不同的地方.

所有的函数名称只有在汇编编译器下才最清楚.因为经汇编编译器编译的函数不经过任何修饰.
C 的编译器编译出来的函数名称如果在汇编编译器看来一个C调用将在函数名前家下划线('_').而一个STDCALL的函数将是_FUNC@NUMBER的形式.如FUNC(void)经过编译器后成为_FUNC@0.一个FASTCALL调用的函数被编译成@FUNC@0.顺便提一下.在WIN32的编译器里不再需要PASCALL调用.VC6已经取消了对PASCALL的支持.
光看C的编译还不够,看一下C++编译器是怎么干的.在缺省情况下.一个C++的函数经过C++编译器后编译出的函数名包括函数名,所属的类,参数类型,调用约定,返回类型.而且更要命的是这么多的信息,只有函数名和类名在编译后还依稀可见.其他就是一长串的ABCD字母,根本就是无法辨认其意义的.我们在VC手册里可以看到

一个例子:

void __stdcall b::c(float); -----------> ?c@b@@QAGXM@Z
一个函数被编译得连名字也不知道怎么样了.这么一来.如果SDK提供的是C++编译器提供了LIB.那么可以说就无法编译任何一个完整的WIN程序.更加不用说什么混合语言编程.

现在,VC编译器提供了个extern语句.当出现extern '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,调试功能强大,并且方法多样。

参考资料:http://zhidao.baidu.com/question/15798535.html?si=7

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-06-19
C是一种简单的语言。它真正提供的只有宏,指针,结构,数组和函数。不管什么问题,C都是依宏,指针,结构,数组和函数来解决的。而C++不是这样,宏,指针,结构,数组和函数当然存在,此外还有私有和保护型成员,函数重载,缺省参数,构造和析构函数,自定义操作符,内联函数,引用,友元,模板,异常,命名空间等。
对每个人来说,习惯C++需要一些时间,对于已经熟悉C的程序员来说,这个过程尤其令人苦恼。因为C是C++的子集,所有的C的技术都可以继续使用,但很多用起来又不太合适。由于C++语言的语法是基于C语言,大多数学习C++语言的读者应当系统地掌握传统的软件工程所述的面向过程的分析与设计方法和C语言程序设计等,并且完全掌握面对对象编程的思想。
第2个回答  2020-03-21
第3个回答  2008-06-19
C是C++的字集。C++包含了面向对象的机制
第4个回答  2008-06-19
C 是面向过程的, 也就是通过过程或者函数来组织应用程序;
C++ 是面向对象的, 程序通过对象来组织, 但也支持面向过程式的开发;

C++ 是 C 的一个超集, C++ 兼容 C 的同时又支持类, 模板, 异常, 运行时类型;

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

C语言和C++有什么区别?
一、主体不同 1、C语言:是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。2、C++:是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计。二、优势不同 1、C语言:能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器...

c语言和c++语言有什么区别
C语言和C++语言的主要区别 一、基本区别 C++是C语言的超集,这意味着C++包含了C语言的所有特性,同时添加了更多高级功能和抽象概念。简单来说,所有有效的C程序在C++环境中也是有效的,但C++更具扩展性和灵活性。二、详细解释 1. 语言特性的扩展:C++相较于C语言增加了更多的特性,例如类、对象、继承...

c语言和c++语言的区别是什么?
一、基本区别 C++是C语言的扩展和增强版,它增加了面向对象编程的特性,如类、封装、继承和多态等。而C语言则是一种通用的、过程式的编程语言。二、详细解释 1.语言特性:C语言:以过程式编程为主,注重数据和程序的流程。它提供了基本的编程结构和功能,如函数、循环、条件语句等。C++语言:除了包含...

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

c语言和c++语言的区别是什么?
C语言和C++语言的区别 一、语言特性的差异 1. 继承与扩展性: C++ 是 C 语言的扩展,继承了 C 语言的大部分特性,并增加了面向对象编程的特性,如类、封装和继承等。这使得 C++ 更适合于大型复杂项目的开发。而 C 语言主要是一种过程式语言,不具备面向对象的能力。2. 类型安全性: C++ 具有更...

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

c语言和c++语言有什么区别
一、基础区别 C语言和C++语言都是广泛应用于编程领域的语言,但两者之间存在明显的区别。C语言是面向过程的语言,注重过程和流程的控制,而C++语言则是面向对象的语言,更注重数据和对象的管理和操作。二、具体差异详解 1. 语法差异:虽然C++是基于C语言的,但两者在语法上存在诸多不同。例如,C++支持...

c++与c语言的区别是什么?
1. 编译器与代码运行效率的不同:C语言在编译时会尽量生成紧凑、高效的代码,执行效率较高。而C++除了保持C语言的效率外,还提供了更多高级特性如对象封装和多态,编译时需要生成更多用于管理对象的额外代码。这通常不会影响核心程序的执行速度,但对整体代码执行时间可能产生影响。因此在对时间效率有严格...

c++和C语言的区别?
C语言与C++的区别有很多:1,全新的程序程序思维,C语言是面向过程的,而C++是面向对象的。2,C语言有标准的函数库,它们松散的,只是把功能相同的函数放在一个头文件中;而C++对于大多数的函数都是有集成的很紧密,特别是C语言中没有的C++中的API是对Window系统的大多数API有机的组合,是一个...

相似回答