简单叙述C++,Java,C#语言的共同点和不同点

作者&投稿:采味 (若有异议请与网页底部的电邮联系)
请问c++和c#以及java之间有什么相同点、不同点。c#吸收了java和c++语言的哪些优点?~

简单地说,它们不是一种语言,语法有差别,编程时具体用到的类库或者函数库也不一样。

虽然它们不是一种语言,不过它们却也有所联系。广泛地说,C可以看作其他三种语言的源语言,因为其他三种语言几乎都是从C而来的,无论从数据类型还是控制语句看,其他三种语言都有从C得来的迹象。

其中C++则一般看作是对C语言的扩展。因为C语言没有面向对象的语法结构,而当时业界又迫切需要面向对象的编程特性,所以贝尔实验室的开发者就为C添加了面向对象的结构。现在C++已经不只是C的扩展了,它已经完全可以被看作一种新的编程语言。虽然C的特性以及库函数仍然被C++支持,不过C++拥有自己的独立的类库体系,功能相当强大。

Java语言是一种完全的面向对象语言,虽然它的底层(运行时库)是用C语言开发的,可是并不依赖于C。因为Java的运行是在运行时库的支持下进行的,所以运行效率比起可以更接近底层的C/C++来说效率会有所影响,不过Java的类库采用很好的设计理念设计,非常好用,也非常实用,已经成为业界的一种标准开发语言。它的跨平台的特性尤其让很多开发者欢迎,你只需要开发一次就能在所有安装了Java运行时库的系统上运行。Java发展了十几年了,可以应用领域非常之广泛,Web开发有JSP,J2EE,桌面领域现在有JavaFX。

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

C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。关于缺点,我想正是源于其优点,因为它们能控制的编程元素粒度精细,所以编程比较困难,烦琐,容易出错。

Java和C#都比较高级,可以看作高级语言的高级语言,优点是开发容易,但运行效率不如更为底层的C/C++。

具体选择使用的时候,可以根据实际的项目需要选择。运行效率要求高的,底层控制要求高的用C/C++,否则可以选择Java或C#;跨平台的要求高的可以用Java。

关于跨平台,C/C++也是很好的语言,因为所有平台都支持,不同的是,不同平台支持的实现不同,类库不同,要编写跨平台的程序,需要选择跨平台的类库,如标准类库,如果标准类库的支持不够也只需要附加编写一个跨平台的支持类库。

几种语言内容都很多,在这里就不详细列举了,要学好每一种都需要花费相当大的精力,祝你能有所成就!




http://blog.chinaunix.net/u/12470/showart_374611.html


要说区别,首先就得说联系,我不记得在哪儿看过这么一句话:C是爷爷,C++是爸爸, C#是c的外孙。这形象说明了三者的关系。
从时间先后上说,他们之间最早出现的是C,然后是c++,最后是c#。c++是为了解决软件危机而引入面向对象,c#为了实现平台统一和java争夺市场下的产物。
从性能上说, c的效率最高,c++次之,c#最低。C是面向过程的结构化编程语言,他的特点是语言体积小,效率高, 语言灵活,给程序的限制小,而且可以方便的对低层进行操作,所以它非常适合于开发操作系统,驱动程序,嵌入式等对速度要求较高的程序。 C++使向下完全兼容C的, C++与C相比最显著的变化就是增加了面向对象的成分,也就是增加了类的概念,因为它的增加使软件开发可以比较容易的描述人类的思维,使得软件的开发和维护变得相对简单,直接降低了软件的成本, 但因为C++是面向对象的语言,这本身就制约他的速度,所以C++适合开发那些大型项目,现代的大部分语言都或多或少的借鉴了C++和C的某些特性. C#被包括在.net平台下,是一个面向对象面向网络面向组件的语言, 有很多地方与java非常相似,擅长于开发网络方面的程序. 因此,更确切的说,c#是一个需.net平台支持的开发语言,单纯看c#没有意义,需要了解.net平台的开发知识。
从编译角度看,C/C++编译生成目标文件都是可被CPU直接理解的机器码, 而C#编译后生成的是MSIL(Microsoft Intermediate Language)这种语言不能直接被CPU执行,而是依靠.net framework翻译(Just-in-time compiling)成opcode后再送到CPU执行的。因此,这也是上面为什么说c#运行效率最低的缘故。(但是这种效率低,是说平均意义上的,不是绝对的)
嗯,不知道有没有什么错误,欢迎大家排砖。


他们之间最早出现的是C, C是面向过程的结构化编程语言,他的特点是语言体积小,效率高(可执行文件的效率在除了图象编程方面外只比汇编低20%左右), 语言灵活,给程序的限制小,而且可以方便的对低层进行操作,所以它非常适合于开发,操作系统,驱动程序,嵌入式等对速度要求较高的程序, 后来随着软件危机的出现,人们意识到
面向过程的语言不容易描述人类的思维,在做大型程序的
时候会增加软件难以调试和维护,这无形中增加了软件的成本,由此C++应运而生, C++使向下完全兼容C的, C++与C相比最显著的变化就是增加了面向对象的成分,也就是增加了类的概念,因为它的增加使软件开发可以比较容易的描述人类的思维,使得软件的开发和维护变得相对简单,直接降低了软件的成本, 但因为C++是面向对象的语言,这本身就制约他的速度,所以C++适合开发那些大型项目,现代的大部分语言都或多或少的借鉴了C++和C的某些特性.
C#是Microsoft为了实现平台统一和与java争夺市场下的产物,它被包括在.net平台下,是一个面向对象面向网络面向组件的语言, 有很多地方与java非常相似,擅长于开发网络方面的程序.

总的来说C是爷爷,C++是爸爸, C#是外孙
http://bbs1.softhouse.com.cn/forum/forum/viewthread?thread=46332

先说C和C++ C面向过程,C++面向对象,但与C向后兼容,也就是有C语言的东西。效率C比C++更高点 Java和C#,可以归为一类,都是完全面向对象的。C#有80%是模仿Java再添加自己的20%的东西,例如有了属性这么一个概念,其实就和Java的get、set差不多。Java是运行在Java虚拟机上的,C#是运行在微软运行时环境的,好像简称CRL什么的,忘了。 Java是完全跨平台的,不需要做任何更改便可以移植到其他平台,C#理论上来说也可以跨平台,但是,微软为了自己的利益(暂且这么说),没有开发其他平台相关的运行时环境。 C++和C也是跨平台的,不过移植的时候大部分时候需要进行一定修改,不过写的好的程序只进行少量修改就行。之所以没有Java的跨平台性那么好,是因为他们并非运行在虚拟机上,所以效率自然比Java高很多。 这几种语言都接触过,不过我的方向是Java,另外C++自学。 其实搞懂这些没什么用处,主要是看你用来做什么,如果做B/S程序,Java是首选、C#也不错。 如果开发应用软件,现在一般是C++、做游戏也是C++。 如果更底层,当然是C和汇编了

c是一种面向过程的语言;c#是一种面向对象的语言。
c#可认为是C的升级加强版。

有一种有趣的说法 C添两个+号,就是C++ 再添加两个+号,就成了c#了(四个+ 就成了#)。

在C#里面基本上放弃了 C的指针。
c#程序编译为一种 中间代码 (IL),然后通过.net framework编译这种中间代码 才能运行。所以 c#程序必须借助 .net framework才能执行。而C是要编译成exe的。C#的这种特性决定了C#的程序将来可能与 操作系统无关,与硬件无关,这种特性源于java,是微软看到java的流行,而仿写了C#。C写出的程序就不具有这种特性。
c++是C语言的优化。。,所以先学C语言再学C++
首先应该清楚,Java是由C++发展而来的,它保留了c++的大部分内容,类似于c++,java是完全面向对象的,但句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的
基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷,而产生的一种新的完全面向对象的语言。
Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易学习,并且编程环境更为简单。

共同点和不同点很多,网上也有很多讲这个的

http://wenku.baidu.com/link?url=0nqKPC3Zz_4LJesqlKjwYMgoiU7BcQVPPQXeTDIEbDx7Nc5MPXmFWj0P3q34gnwYkOZlcFgBKxHKlrtv_XC0IaDJ_XchmHsmEUJ2vn7la13

http://wenku.baidu.com/link?url=hq6cDJfNfS_8sr7gzzqO5YOqJIpPmh4ygenYBjSsPcyXtyeOBcN4dP5JP_16XfdKWLO9WLQ-3K4X99TQjkgwUMO6LuOh5PRXy32PpS39dVu


都是面向对象的变成语言,C++的偏向于内核,处理效率高,java跨平台性好,C#后起之秀,为微软推出的主要用于win平台的开发语言。


C和J的梵文翻译是什么?
梵文好像没有单独的辅音哦,只有一个辅音与一个元音结合的辅音,像Ka,Ga啊等等,如果你要找,可以找找Ja Ca...

汇编语言程序题:分别输入3个小于99的两位十进制数,把其中数值位于中间的...
cmp al, C ja m5 ;B>C>A mov bl, B jmp printitm1: ;A>B, then judge B>C? mov al, B cmp al, C jb m2 ; B<C mov bl, B ; found it, then print it jmp printitm2: ;A>B, C>B, then judge A>C? mov al, A cmp al, C ja m3 ...

C语言程序题?
a = a+i, a+j; 这里是两个表达式,分别是a = a+i;和a+j a = (a+i,a+j); 这里右侧是“逗号表达式”,整体是一个表达式 所谓逗号表达式:由n个表达式组成,并且用逗号隔开,并且将逗号表达式中的最后一个表达式的值赋值给整给变量 根据描述a = 97,b,i=3,j=5,x=3.5 则a = a...

跪求五个字母组成的英文单词少于100个别发了
跪求五个字母组成的英文单词少于100个别发了我要的是名词越多越好最多的我给追加悬赏有带中文意思的...bronc, brood, brook, broom, , caber, cabin, cable, cabob, cacao, cacas, cache, cacti, caddy...jaggy, jagra, jails, jakes, jalap, jalop, jambe, jambs, janes, janty, japan, jap...

求一个特别难得推理题,加答案
你的任务是利用三条是非题,找出 A, B, C 的身份,但每次只能向一位神祇发问。神祇们都懂得你的语言[注 1],但只会用他们的语言回答 "da" 或 "ja"。这两种回答,一个解“是”,一个解“否”,但你不知道哪个回答是哪个意思。[注 2]Boolos 于文中另有数点澄清:你可以问一位神祇多于一条问题,也可以...

包含j c s h f的英文单词
ja 一月 jane 简(女名)jangle 吵架(使)发出刺耳声 janitor 管理员\/管门人 January 一月 Japan 日本\/日本国 Japanese 日本的 日本人 jar 坛子\/罐子\/缸 jargon 行话 jasmine 茉莉淡黄色 jasper 碧玉绿色装饰用宝石 jaundice 黄疸偏见乖僻 jaundiced 有偏见的 jaunt 短程旅游 jaunty 愉快的\/满足的 javeli...

通过C51编写的c语言与汇编语言有什么区别
你这个问题本质上也就是C和汇编的区别。其实很简单,C是高级语言 为什么叫高级语言呢?其实C语言就是汇编语言的一种进化也就是机器语言的一种进化。是一种表达方式而已。举个例子给你看:C语言:if(a>b){ } 这样的一种表达式在汇编里面却变成了许多行代码。汇编: cmp a,b je\/jne\/ja\/jb\/......

苹果ja是什么版本
演示机型:Iphone 12系统版本:iOS14.4 J\/A为日本版本。CH\/A为国行、ZP\/A为港行、KH\/A是韩版、LL\/A为美版、DN\/A为德版、ZA\/A为新加坡和马来西亚、AB\/A为阿联酋、RS\/A为俄罗斯、GR\/A为希腊、IP\/A为意大利、PP\/A为菲律宾、FB\/A为法国、C\/A是加拿大版、B\/A为英国版,F\/A为法国版、Y\/A...

C语言高手进啊 急!!!
1.include <stdio.h> main(){ int a[10],i,sum=0,count=0;for(i=0;i<10;i++){scanf("%d",&a[i]);if(a[i]<0){ sum+=a[i];count++;} } printf("avg=%.2lf\\n",(double)sum\/count);} 2.include <stdio.h> void fun(double *a,double *b,double *c){ int t;if...

拳皇出招表中的JA、JB、JC、JD啥意思
J为跳(英文单词jump的缩写) A,B,C,D 分别是 轻拳,轻脚,重拳,重脚 7 8 9 —— 斜后上 上 斜前上 4 5 6 —— 对应 后 居中前 1 2 3 —— 斜下后 下 斜下前 ...

昌邑区15677746613: c语言,c++语言,java语言是什么 -
夹昂高德: 这个还真难描述.好比你问什么是中文,什么是英文.首先,这三种东西是都一种标准,编写程序的标准,语法啊什么的.另外,它们都是所谓的高级程序语言,高级指的是人类更容易看懂,低级一点的就是汇编跟机器语言,汇编某程度上是用...

昌邑区15677746613: 谁能简单的描述下C、C++C#以及java的区别. -
夹昂高德: 简单地说,它们不是一种语言,语法有差别,编程时具体用到的类库或者函数库也不一样. 虽然它们不是一种语言,不过它们却也有所联系.广泛地说,C可以看作其他三种语言的源语言,因为其他三种语言几乎都是从C而来的,无论从数据类...

昌邑区15677746613: 什么是C+语言 -
夹昂高德: 好像没有C+语言,有C、C++、VC++、C#,C语言是一种基础的面向过程的计算机高级语言,现在编程入门一般都学C或者C++,C语言既有高级语言的特点,也保留了低级语言的一些特点,所以现在在一些跟硬件关系比较紧密和嵌入式编程中用...

昌邑区15677746613: 请问一下:C语言,C++.JAVA和C#各是什么啊?有什么关系啊?
夹昂高德: C语言、C++、JAVA、C#都是编程语言 C语言是这些语言的基础,语法结构类似. C++主要用来开发游戏,应用软件,比如QQ,迅雷等. java和C#优势在web开发上.比如各种管理系统,无论是bs还是cs的,都很容易实现. java在大型项目中应用较多,c#在中小型项目中占优势,不过C#的优势,越来越大,许多原本用java平台的大型网站,都转向了.net平台(戴尔网站)

昌邑区15677746613: JAVA、C#、C++ 语言有什么区别?
夹昂高德: 最佳答案 这些语言区别主要是应用 领域不同 C语言用来写操作系统 和一些系统软件与应用软件 不适合写大型应用软件 C++主要是弥补C不适合写大型软机的不足而开发的 JAVA主要是企业和嵌入式开发 也可以开发 桌面程序但不太适合 C#和JAVA 很相似 C/C++和C#用VS2008就可以开发 JAVA用JDK开发 大学学的 是C语言程序设计 学C语言谭浩强的书就不错 选择了不同的语言就意味着 选择了不同的领域 但愿你能找到你喜欢的语言 有的人不知道学什么语言好 也许是不清楚自己该向哪个方向发展 个人看法希望对你有帮助

昌邑区15677746613: 谁能跟我详细的介绍下: c/c++、java,c#
夹昂高德: Java也是纯面向对象,是在C++的基础上分离出来的一门独立高级语 a

昌邑区15677746613: C、C+、C#、Java语言之间的区别及用途 -
夹昂高德: 这些语言区别主要是应用 领域不同 C语言用来写操作系统 和一些系统软件与应用软件 不适合写大型应用软件 C++主要是弥补C不适合写大型软机的不足而开发的 JAVA主要是企业和嵌入式开发 也可以开发 桌面程序但不太适合 C#和JAVA 很相...

昌邑区15677746613: c#是一种什么样的语言? -
夹昂高德: 它松散地基于C/C++,并且有很多方面和Java类似.Microsoft是这样描述C#的:“C#是从C和C++派生来的一种简单、现代、面向对象和类型安全的编程语言.C#(读做'Csharp')主要是从C/C++编程语言家族移植过来的,C和C++的程序员会马上熟悉它.”

昌邑区15677746613: C++ C# VB Java都是什么呀? -
夹昂高德: C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”. 它是一种使用非常广泛的计算机编程语言.C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言.它支持过...

昌邑区15677746613: C、C++、C#是什么语言?有什么不同?怎么叫? -
夹昂高德: c可以说是一种中级语言,就是介于汇编跟高级语言的一种,与c++、c#相比,它更接近计算机低层.也是近一步学习c跟c++的基础…… c++是在c的基础上发展起来的高级语言.他们在很多方面是兼容的.c#叫(C sharp)楼上的说得不错,差不多就是java的翻版了.C#是一种最新的、面向对象的编程语言.C#与C/C++具有极大的相似性 大概的异同就这些,不过有很多很琐碎的东西,建议自己去找资料看.关于怎么用的问题嘛,等你学了就会了……

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网