简单地说,它们不是一种语言,语法有差别,编程时具体用到的类库或者函数库也不一样。
虽然它们不是一种语言,不过它们却也有所联系。广泛地说,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