C#和C++哪个强大?为什么?

 我来答
与世对酣
2018-10-15
知道答主
回答量:18
采纳率:0%
帮助的人:2.6万
展开全部

。。。

论强大,都属于通用型高级编程语言,都很强大。

问题无解。

这里放一个特性对比(C、C#、C++):

C语言诞生得非常之早,C语言的目标就是比汇编方便易用,同时不要损失汇编的表达能力。所以C语言可以看成是“高级的汇编”语言。C语言的源代码基本上可以非常容易地对应到汇编代码,而且可以不需要什么运行时环境的支持。C的特点,简单容易编译,灵活贴近底层。所以一直到现在,一些需要直接和硬件打交道的软件都还是用C语言写的。总之C语言编写简单,更接近底层,直观得管理数据存储。

C#语言抽象层次高且基本只有一种(面向对象的),运行时支持丰富(垃圾回收等),类库丰富。所以它就是好学,易用,同时兼顾运行效率,尽量优化。C#与Java类似,编译后得到的还不是机器代码,而是运行在虚拟机中的元指令。它对安全性做了更多的考虑,没有指针,不能直接操作内存,自动实现内存管理。

最直观的区别就是:C#没有指针类型,内存自动管理;C#有字符串类型,C语言没有,靠字符数组或指针来存字符串;C#中switch后可跟string类型,并且会禁止所有switch..case语句的失败情形,除非case语句后是空格,否则执行了前一个case语句就算没有break也会停止执行后面的case语句;

C#中定义数组时,数组长度可以是变量,而C语言中定义时数组长度只能是一个常量表达式,动态分配内存需要用到molla函数;C语言中没有集合类型;C#有foreach可用于数组和集合的遍历等...

总的来说,C语言更底层,很多东西都需要自己DIY,但极其灵活,功能十分强大,其精华在于指针,直接管理数据存储,面向过程编程,很多操作系统和系统软件都是用C语言写的;C#则更容易上手,很多东西都已经写好,直接使用即可,避免了内存的直接管理,面向对象编程;正如一个冷笑话所讲:“C语言:指针最好用。
C++:最好不用指针。 C#:指针是什么?”

好文要顶
           关注我
   收藏该文
   
   

tattackor
推荐于2018-02-04 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:872万
展开全部
寸有所短,尺有所长。各个语言都有各自的特色和不足,不可以好/坏来评价。应该以自己需求来选择最合适的编程语言
1、 效率方面:C++注重运行效率,如果对实时性有较高要求,首选C++/C语言。C#写成的代码,都是先被编译成中间语言(IL,Intermediate Language,在运行时,再由即时编译器(JIT,Just-In-Time)编译成本机代码,所以实时性上少欠一筹。
2、依赖性:C++可以生成native(本地代码),不用依赖于.net framework;C#需要相应版本的.net framework支持。
3、可移植性:采用标准C++编写的代码(或使用QT编写的代码)可移植性还是比较强的;采用C#编写的程序目前基本上只能运行于windows系统上,linux平台上有个mono项目用于将C#迁移到linux平台使用,但是目前该项目还有很长的路要走。
4、易用性:C++从C语言过渡而来,对C语言保持了最大的兼容性,熟悉C语言的用户很容易上手,但是也因为这一原因,使C++不是一个纯粹的面向对象的语言。而C#则是一个彻底的面向对象语言。C++中最特色的部分就是指针,但是现在普遍认为应该适度使用指针,因为它太容易出问题了,C++中可以设置全局变量;C#很少使用指针(还存在,在非安全代码中仍使用),没有全局变量。C++中程序员要自行处理对象的析构,容易出错;C#有垃圾回收机制(从java借鉴过来的,其实还有很多东西都像是从java学来的),程序员不用再过分担忧对象的析构了,一切交给系统来处理。初学者C#更容易上手。
5、数据库:大多数数据库软件都为二者提供了相应的访问接口,相对而言C#更容易使用。
6、网页编程:很明显,C#在Web编程上更现代,更灵活,更易用。
7、并行编程:例如nVidia的CUDA并行计算架构只对C++提供了支持,尽管有第三方提供了面向C#的接口,还是使用C++更方便一些。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
落花下的水车小屋v
2018-10-23 · 生活不止有眼前的苟且,还有诗和远方
落花下的水车小屋v
采纳数:59 获赞数:96

向TA提问 私信TA
展开全部
C#好点。
1.C#和C的语法几乎是互通的,只不过C#是完全面向对象的,C是面向过程的。
2.C#的很多内容都可以用C去映射, 比如委托类似于指向函数的指针, 结构体相当于typedef,类相当于type*, 接口则是一个全新的概念了,这体现着一定的编程思想的转换。
3.C#出来得晚性能、更方面都比较全面。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自我编程
2018-09-24 · 科技优质答主
自我编程
采纳数:1481 获赞数:4283

向TA提问 私信TA
展开全部
都以c为基础,c++是c的升级版,与c比较最大区别多了面向对象。
c#是微软在c++基础上开发的新语言,更加面向对象,开发效率更高。
c#更依赖系统,移植性不如c++。
c#运行效率较c++低。

但c#,易使用易开发。
孰优孰劣,自行按需考虑吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heyrdaxm
2011-10-22 · 超过18用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:39.9万
展开全部
在处理底层东西的时候c++比较好,所以你看windows,office以及到魔兽世界的内核都是用的c++的,这就是因为c++可以直接操作内存。c#则无法直接操作内存,开发效率上C#肯定是高于c++的,但执行上c++就高点了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(33)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式