问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C,C+和C++它们有什么区别

发布网友 发布时间:2022-02-28 09:56

我来回答

6个回答

热心网友 时间:2022-02-28 11:25

只有C语言和C++语言,没有C+语言。

1、出现时间不同

C++是C的超集,也可以说C是C++的子集,因为C先出现。按常理说,C++编译器能够编译任何C程序,但是C和C++还是有一些小差别。

例如C++增加了C不具有的关键字。这些关键字能作为函数和变量的标识符在C程序中使用,尽管C++包含了所有的C,但显然没有任何C++编译器能编译这样的C程序。

2、C程序可以省略函数原型,而C++不可以

一个不带参数的C函数原型必须把void写出来。而C++可以使用空参数列表。C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。标准C++中的字符串类取代了C标准C函数库头文件中的字符数组处理函数(C中没有字符串类型)。

C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。C++中的try/catch/throw异常处理机制取代了标准C中的setjmp()和longjmp()函数。

3、关键字和变量不同

在C++中还增加了bool型变量和wchar_t型变量:布尔型变量是有两种逻辑状态的变量,它包含两个值:真和假。如果在表达式中使用了布尔型变量。

那么将根据变量值的真假而赋予整型值1或0。要把一个整型变量转换成布尔型变量,如果整型值为0,则其布尔型值为假;反之如果整型值为非0,则其布尔型值为真。布儿型变量在运行时通常用做标志,比如进行逻辑测试以改变程序流程。

C++中还包括wchar_tt数据类型,wchar_t也是字符类型,但是是那些宽度超过8位的数据类型。许多外文字符集所含的数目超过256个,char字符类型无法完全囊括。wchar_t数据类型一般为16位。

标准C++的iostream类库中包括了可以支持宽字符的类和对象。用wout替代cout即可。

4、强制类型转换不同

有时候,根据表达式的需要,某个数据需要被当成另外的数据类型来处理,这时,就需要强制编译器把变量或常数由声明时的类型转换成需要的类型。为此,就要使用强制类型转换说明,格式如下:int* iptr=(int*) &table;

表达式的前缀(int*)就是传统C风格的强制类型转换说明(typecast),又可称为强制转换说明(cast)。强制转换说明告诉编译器把表达式转换成指定的类型。

有些情况下强制转换是禁用的,例如不能把一个结构类型转换成其他任何类型。数字类型和数字类型、指针和指针之间可以相互转换。当然,数字类型和指针类型也可以相互转换,但通常认为这样做是不安全而且也是没必要的。强制类型转换可以避免编译器的警告。

5、函数重载

在C++中,允许有相同的函数名,不过它们的参数类型不能完全相同,这样这些函数就可以相互区别开来。而这在C语言中是不允许的。

参考资料来源:百度百科-C++

参考资料来源:百度百科-C语言

热心网友 时间:2022-02-28 12:43

我觉得是侧重点不一样

c语言是一门相对比较基础的语言

而c++是一门面向对象的语言

c++中引用了类的概念,和c中的结构体相似

使问题更容易解决,用的更广/

所以,现在都是象c++迈进的

一个是面向过程的结构的:c

另一个是面向对C++是面向对象编程的,所以它是后来VC及BC的鼻祖,C仅是是一般的过程编程,所以要想有所发展应该是学C++。不过,关键要理解什么是“对象”,什么是“过程”。由于C的所有语法在C++中都有,我认为没有必要再学C,据我所知,在学校中已没有C的课程。象的:c++

热心网友 时间:2022-02-28 14:18

对于C和C++这两种语言的说法有很多,各种争议,有人说他们是完全独立的语言,有人说C++其实就是在C的基础上加上面向对象而已。今天,优就业科普来告诉大家,C和C++有什么区别。

C是一个结构化语言,如谭浩强老先生所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。

而且,“C加上好的设计”也能写出非常好的东西。对语言本身而言,C是C++的子集,那么是什么样的一个子集?从上文可以看出, C实现了C++中过程化控制及其它相关功能,而在C++中的C(我称它为“C+”),相对于原来的C还有所加强,引入了重载、内联函数、异常处理等等玩艺儿,C++更是拓展了面向对象设计的内容,如类、继承、虚函数、模板和包容器类等等。再提高一点,在C++中,数据封装、类型这些东东已不是什么新鲜事了,需要考虑的是诸如:对象粒度的选择、对象接口的设计和继承、组合与继承的使用等等问题。所以相对于C,C++包含了更丰富的“设计”的概念,但C是C++的一个自洽子集,也具有强大的功能,同样值得学习。我们现在一步步地来分析一下。

一、类,类我并不说它有什么不好,但是对于初学者,它是一个累赘。类的封装使得初学者对程序产生厌倦,感到不适和麻烦。

二、引用,引用对于初学者就更容易产生混淆,不知道哪个是引用,哪个是变量。

三、函数的重载,初学者学函数的重载好像没什么坏处,但是,这会使初学者潜意识里对C语言的变量类型的重要性产生淡化,要记住C语言是对变量类型最敏感了的,变量的类型在C语言里的重要性是不言而喻的。

四、流操作符,和上面同样的道理,使得对变量类型的重要性产生淡化,况且,cin这个操作符有点儿不怎么方便,有时会产生使初学者莫名其妙的结果。

五、操作符重载,典型的高级应用,初学者可能根本用不着,这会让他们觉得C++很难,门槛高,看不懂。

六、继承,以及虚函数,典型的模仿四不象,这种函数除了看起来深奥,实用价值很低。

热心网友 时间:2022-02-28 16:09

c是老大哥,很多操作系统是他做的。C+没听说过,网上查了也没有c+语言。只有c#,C#是微软自己开发的语言,c++是在c的基础上发展而来。C语言面向过程编程的语言;C++面向对象编程的语言。
两者有本质的区别,其实是完全不同的两种语言,只不过C++兼容C语言而已。
C#最大的特点就是没有指针。其中C++则一般看作是对C语言的扩展。因为C语言没有面向对象的语法结构,而当时业界又迫切需要面向对象的编程特性,所以贝尔实验室的开发者就为C语言添加了面向对象的结构。现在C++已经不只是C语言的扩展了,它已经完全可以被看作一种新的编程语言。虽然C语言的特性以及库函数仍然被C++支持,不过C++拥有自己的独立的类库体系,功能相当强大。

C#是微软开发的一种编程语言,语法类似Java,几乎就是从Java的翻版。运行原理和Java也类似,也是通过运行时库的支持运行。不过支持的平台还很有限。Java几乎被所有平台支持,而C#目前只被Windows和Linux支持,Windows下的支持当然是由微软自己开发的,而Linux下的支持则有MONO支持。实际上,MONO也是把C#应用转化为Java应用而已,所以本质上,C#仍然只是被微软自己的操作系统支持。应用平台受到*,是它最大的缺点。

C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。关于跨平台,C/C++也是很好的语言,因为所有平台都支持,不同的是,不同平台支持的实现不同,类库不同,要编写跨平台的程序,需要选择跨平台的类库,如标准类库,如果标准类库的支持不够也只需要附加编写一个跨平台的支持类库。

热心网友 时间:2022-02-28 18:17

C++是面向对象的语言,JAVA也是面向对象,而C语言是面向过程

所谓面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

学JAVA之前当然有C++的基础最好啦~C++的语言比较简练,而且在C++里可以用C语言的代码,是可以识别的 C++语言的函数库比较密集,写程序很方便,而且利于图象处理

热心网友 时间:2022-02-28 20:42

C语言:通用计算机编程语言
C++:面向对象
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大连大学中外办学值得上吗 大连大学国际本科是公办还是民办 介绍一些有古老气息的,有传说的地方,越多越好。最好在中国中部。 现在的日本鬼子难道一定是你们想的这样坏吗?坏的是日本政府! 我近几年在吃玉米的时候总是不消化,一吃就拉出来了,而且大便中... 同时掷3个均匀的骰子,当得知"其中两个骰子面朝上点数之和为8时"获得多... 重庆市工伤申请表的鉴定程序是什么的 ...做了包皮手术,有早泄有前列腺,在晚上睡觉梦游射精,有什么影响到病快... 电脑没声,音箱正常,也没发现有感叹号和问号.声音控制部分被禁用.是换了... 属狗女什么属相最配对,属狗女和什么属相最配 C.C的真名 C-C, C=C 有什么区别? c:\与c:区别 c+是什么? C语言'c','\c'的区别是什么? C表示什么? C语言中*&C什么意思? 在C语言中“%c%c\n”和“%d%d\n“分别说明什么。。。?? c语言中 %c表示什么 c++中%c是什么意思 c语言中%*c%c什么意思 C语言中 %*c 是什么意思? C语言中/与%的区别 %*c%c在c语言中是什么意思 C语言中“+=”是什么意思? 如何解除手机号绑定 C语言中 !是有什么含义? 怎么解除和手机号的绑定? 在c语言中%3c 是什么意思 怎么解除绑定的手机号 在C语言中?:表达式是什么意思? c+=c++怎么理解 excel中C:C和$C:$C有什么区别? C语言属于什么语言? C语言是什么类型的语言? c语言本身是开源的吗?c语言是用什么写的? c语言中for语句是怎么用的 c语言中for的用法 for在c语言中的用法 for在c语言中是什么意思? c语言中for语句的用法及规则是什么? c语言for的用法 C语言for循环的格式和用法是什么? C语言for 用法 求解c语言for的用法。 c语言for语句的用法 关于C语言中for 的用法 C语言中for语句的用法是什么? c语言for用法 c语言中for是什么意思