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

 我来答
ppliang0415
推荐于2016-11-26 · TA获得超过621个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:0
展开全部
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

leiting991002
2008-06-19 · TA获得超过628个赞
知道小有建树答主
回答量:810
采纳率:0%
帮助的人:881万
展开全部
C是一种简单的语言。它真正提供的只有宏,指针,结构,数组和函数。不管什么问题,C都是依宏,指针,结构,数组和函数来解决的。而C++不是这样,宏,指针,结构,数组和函数当然存在,此外还有私有和保护型成员,函数重载,缺省参数,构造和析构函数,自定义操作符,内联函数,引用,友元,模板,异常,命名空间等。
对每个人来说,习惯C++需要一些时间,对于已经熟悉C的程序员来说,这个过程尤其令人苦恼。因为C是C++的子集,所有的C的技术都可以继续使用,但很多用起来又不太合适。由于C++语言的语法是基于C语言,大多数学习C++语言的读者应当系统地掌握传统的软件工程所述的面向过程的分析与设计方法和C语言程序设计等,并且完全掌握面对对象编程的思想。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中梦蔼0n
高粉答主

2020-03-21 · 说的都是干货,快来关注
知道答主
回答量:5.8万
采纳率:4%
帮助的人:2853万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ece9e26
2008-06-19 · 超过29用户采纳过TA的回答
知道答主
回答量:99
采纳率:0%
帮助的人:89.4万
展开全部
C是C++的字集。C++包含了面向对象的机制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sgedev
2008-06-19 · TA获得超过1030个赞
知道小有建树答主
回答量:460
采纳率:0%
帮助的人:635万
展开全部
C 是面向过程的, 也就是通过过程或者函数来组织应用程序;
C++ 是面向对象的, 程序通过对象来组织, 但也支持面向过程式的开发;

C++ 是 C 的一个超集, C++ 兼容 C 的同时又支持类, 模板, 异常, 运行时类型;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式