| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1509 人关注过本帖
标题:[求助]新手请教C#和C、C++的区别?
只看楼主 加入收藏
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
结帖率:66.67%
收藏
 问题点数:0 回复次数:8 
[求助]新手请教C#和C、C++的区别?

C和C++是两种不同的语言,但是都可以在VC的开发环境下运行。
那么C#是什么呢?是另一种不同于C和C++的编程语言吗?它的开发环境是什么?
VC.net又是什么呢?它们几个最显著的区别是什么?
请高手赐教一下!谢谢!

搜索更多相关主题的帖子: 编程语言 开发 
2007-09-18 14:53
按时的地方
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2006-11-23
收藏
得分:0 
我感觉这个问题其实不简单!

2007-09-18 17:33
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
收藏
得分:0 
晕。。。有没有高手给解释下啊?

生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2007-09-18 18:06
vsnet
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2007-8-5
收藏
得分:0 
随便找本C#的书,都说的很明白.让大家怎么说啊.

2007-09-18 18:44
jasonxie
Rank: 1
等 级:新手上路
威 望:2
帖 子:225
专家分:0
注 册:2007-3-19
收藏
得分:0 

嘿嘿


你是我心内的一首歌,不要只是个过客;在我生命留下一首歌,无论结局会如何.
2007-09-18 18:56
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 

以下内容转贴

C#介绍
我们知道,C和C++已经成为广泛的应用在商用软件的开发中的开发语言。但是C和C++的灵活性是牺牲了开发效率的。如果与其他的开发语言相比(比如说VB,Delphi),相同功能的C/C++软件通常会需要更长的开发周期,要写更多的代码。正是由于C/C++开发的复杂性和需要较长的开发周期,所以许多C/C++开发人员都在寻找一种可以在功能和开发效率间提高更多平衡的开发语言。 于是Microsoft想到了C#(发音为 C Sharp),并推出了C#。2000年6月 微软发布C#语言和.NET平台。C#语言是一种强类型的、面向对象的语言、它具有语法简单、表达力强的特点;而.NET平台则是构成微软的“.NET计划”的基石。.NET平台的核心包括两方面 一方面就是著名的通用语言运行机(Common Language Runtime) 虽然这个名词起得晦涩了点 不过大家可以拿它和Java的虚拟机来作比较,二者完成的任务大致相同,另一方面就是一大堆通用函数库,这些库函数可以被多种语言调用,并且通过编译都产生一种共同的中间语言(Intermediate Language),这种语言也可以拿Java的字节码来类比,虽然完成的方式有些不一样。C#是一种先进,面向对象的语言,通过C#可以让开发人员快速的建立大范围的基于MS网络平台的应用,并且提供大量的开发工具和服务帮助开发人员开发基于计算和通信的各种应用。 正是由于C#是一种面向对象的开发语言,所以C#可以大范围的适用于高层商业应用和底层系统的开发。即使是通过简单的C#构造也可以各种组件方便的转变为基于WEB的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。
它有以下的特点: 开发效率与安全性
目前的各种基于WEB应用的软件开发向传统的商业应用软件开发提出了挑战,开发者被组织起来开发具有更短开发周期的各种应用,并且需要能够提供更好的可修正性,而不是建立一个可以长久使用的软件系统。
C#的设计正是充分考虑了这些因素。C#会帮助开发者通过更少的代码完成相同的功能,并且能够更好的避免错误发生。
与WEB开发相结合
新的开发模式意味着需要更好的利用现有的各种WEB标准,例如HTML,XML,SOAP(简单对象存取协议)。现存的开发工具是在Internet出现前或是未得到充分应用前出现的,所以都不能很好的适应目前WEB技术的开发需要。
C#开发者可以方便的在M$网络平台上扩展自己的应用。C#可以将任何组件转变为WEB服务,并且可以被运行于Internet上的任何平台的任何应用调用,重要的是C#对这一特性提供了内置的支持。
更重要的一点,WEB服务框架可以让任何WEB服务都看起来类似于C#的内置对象,所以可以让开发人员在开发过程中继续使用他们已经具备的面向对象的开发方法和技巧。
此外C#还拥有许多其他特性使自己成为最出色的Internet开发工具。例如,XML目前已经成为网络中数据结构传送的标准,为了提高效率C#将允许直接将XML数据映射成为结构。这样的话可以有效的处理各种数据。
减小开发中的错误
即使是优秀的C/C++开发人员都难于避免在编码过程出现一些常见错误,比如错误的初始化一个变量,而这种错误将有可能导致各种不可以预知的错误,并且难于被发现。如果一旦错误在发现前被投入生产环境,排除这些错误将会付出昂贵的代价。而C#的先进设计思想可以消除C/C++开发中的许多常见错误,比如:
垃圾收集机制将减轻开发人员对内存的管理负担。 C#中的变量将自动根据环境被初始化。 变量是类型安全的。 使用C#将会使开发人员更加轻易的开发和维护各种商业应用。
提供内置的版本支持来减少开发费用
更新软件系统中的组件(模块)将会是一种容易产生错误的工作,在代码修改过程中可能对现存的软件产生影响。为了帮助开发人员处理这些问题,C#在语言中内置了版本控制功能。例如:函数重载必须被显式的声明(这种情况在C++和JAVA中时常发生),这可以防止代码级错误和保留版本化的特性。另一个相关的特性是接口和接口继承的支持。这些特性可以保证复杂的软件可以被方便的开发和升级。
总结起来,这些特性可以帮助开发更强壮的软件后继版本和减轻开发费用。
功能强,易于表现,灵活
更好的结合商业应用中的流程与软件实现
为了更好实现公司的各种商业计划,在软件系统中必须在商业流程和软件实现间有紧密的联系。但是大多数的开发语言都不能轻易的将各种应用逻辑与代码相联系。例如,开发人员会使用各种注释来标明各种类所代表抽象商业对象。C#允许使用在任何对象上使用预定义数据或是经过扩展的元数据。在系统结构中可以使用区域属性(译者:类似NT的网络域结构),并且将这些属性添加到类,接口或者其他元素上。开发者可以独立的测试各种元素上的属性。这将会使得一些如同收集区域中对象属性,或是编写自动工具来保证的区域中的类,接口是否被正确定义的类似工作变得简单。
可扩展的协作能力
虽然管理性强,透明型好,类型安全的开发环境对大多的商业应用都适合,但现实的经验告诉我们一些应用出于执行效率或是与现存的应用接口API相结合的原因需要使用原有的开发方式来进行编码。也正是如此,许多C/C++开发人员宁愿放弃使用一些可以提高开发效率的开发工具。C#通过下面的方法来解决这些问题:
内置支持COM模型和Windows平台API。
允许有限制的使用指针。
在C#中任何对象都会自动成为COM对象,开发者不再需要显式的实现IUnknown和其他一些COM接口,同时也可以方便而自然的使用现存的COM对象,而不需要关心这些COM对象是否使用C#开发。
对于使用C#的开发人员来讲,C#允许开发人员调用OS所提供的API。在经过标记的代码区域内使用指针并手工管理内存分配。这可以让C/C++开发人员更快的熟悉和转向C#和并且不需要放弃在以前开发中所形成的开发习惯,而且以前的C/C++代码依然可以被重用。无论是对于COM的支持还是对于API调用的支持都是为了为开发人员提供足够的开发控制能力。

就c++和C#编程语言来说,只是它们的设计目的有所区别。

c++在设计之初希望提供先进的面向对象特性,同时提供很好的性能。但是为了保证和以往的程序、开发人员的知识兼容,c++与c语言几乎完全兼容。c语言本身其实就是现代计算机的高级抽象,可以直接访问地址、通过指针可以访问几乎任何内存地址;堆和栈的结构体现等待。当然c++也就具有了这样的特性。随着c++的逐步发展,generic programming 泛型编程技术和stl标准模板库的引入,c++和c的差异越来越大。基本上c++是为了高效地使用面向对象技术或者泛型技术编写大规模高性能应用程序(往往是一些相对比较底层的应用程序)而设计的。

c#通过底层的虚拟机机制减少了c/c++语言中常常容易发生的内存泄漏和安全性问题,代价是运行速度减慢。同样的由于简化了编程语言的复杂性(c#远远比c++来得简单),大大提高了开发者得效率。另外c#具有.net庞大的类库,这个优势是c++所不具有的。因此c#非常合适开发企业中处理业务的应用程序。同时微软所有的操作系统、服务器程序、桌面端程序都在向.net平台统一。在历史上与次类似的情形(指微软技术)只有在微软从16位平台向32位平台转变的过程中发生过。因此现在.net的转变对开发者来说可能是痛苦的(因为要学习很多新的东西),但也充满了机会。


浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2007-09-18 19:01
pacocai
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1583
专家分:0
注 册:2007-3-12
收藏
得分:0 
C、C++、C#,都是不同的语言,而C++、C#个人感觉都是C的延伸。而C#则更像JAVA……

VC.net其实就是Visual C++,不过是一个版本不同(这样理解比较好一些),至于.net只要关注一下新闻的话应该就能了解。

.net简单的解释:Microsoft® .NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。

C#的主要开发环境还是以Visual C#为主,其实在Visual Studio中已经集成这个环境。

[此贴子已经被作者于2007-9-18 19:13:31编辑过]


浮生若梦天边月,醉死如酒水中星。红楼一梦千人叹,岂让万夫空做贱。博客:http://hi.baidu.com/rxvip
2007-09-18 19:10
ssaje
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-9-18
收藏
得分:0 
2007-09-18 21:28
红影
Rank: 1
等 级:新手上路
威 望:2
帖 子:659
专家分:0
注 册:2006-2-22
收藏
得分:0 
非常感谢pacocai的热心解答!
请版主给pacocai加分以示奖励!

生命中,不断有人离开和进入。于是,看见的,看不见了;记住的,遗忘了。
2007-09-20 16:32
快速回复:[求助]新手请教C#和C、C++的区别?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050473 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved