C语言跟C#有什么不一样的

 我来答
1172490637
推荐于2016-06-02 · TA获得超过562个赞
知道小有建树答主
回答量:149
采纳率:0%
帮助的人:124万
展开全部
不同点有很多

1. 开发时间,先后出现顺序不同
C语言最早在1972年由Dennis M.Ritchie在贝尔实验室基于BCPL语言开发
而C#则由微软最早在2000发布的面对对象语言
2. 语法不同
虽然C#的语法中很多如表达式,函数,声明等语法和C类似,但C#还有很多现代化的、体现最新编译技术的语法,毕竟C的年纪比较大,而且C#的开发者众多

其次,最主要的还是C是面对过程的,而C#是面对对象的

3. 编译和执行方式不同
C的编译器一般将源码编译成机器代码,故其执行速度快,但就不方便嵌入一些如垃圾回收之类的功能(当然C今后也不太可能加入此项功能)

C#则编译成微软自家开发的一种中间代码IL,这也是为什么C#编译出来的程序要有被称作.Net framework的运行环境,其作用是将IL中间代码通过Just-In-Time的方式编译成底层机器代码再运行。这样虽然效率较C低,但可以有更多的运行时特性

其实,C和C#可以看作是两个完全不同的语言,其被开发的目的和方式也大相径庭
swordlance
2010-11-22 · TA获得超过1007个赞
知道小有建树答主
回答量:535
采纳率:75%
帮助的人:440万
展开全部
最大的区别,C语言编译后是变成机器语言直接运行在CPU上的,C#编译出来的ML是运行在一个叫CLR的类似虚拟机的东西上的。并不直接使用CPU。
C语言是一门非常基础的语言,提供了高效的目标程序和比较少的特性,比如面向对象的类,抽象,多态和继承都无法实现,而C#是一门纯面向对象语言,不仅强制要求类定义,并且全面支持面向对象的方法(抽象,多态和继承)。
C语言有指针类型(可以说是这门语言的精髓),对于计算机有深入了解的程序员可以使用指针进行各种“精妙”的操作,当然也伴随着很大的风险,比如指针异常导致的内存溢出。C#在标准代码中不允许使用指针,事实上绝大部分指针的操作都被C#良好的封装了,避免了内存溢出的风险。
另外C#由于遵守CLT定义并运行在CLR上,有良好的可移植性,只要目标机器安装了对应版本的.NET Frameword,C#程序就可以在那台机器上运行(虽然.NET目前主要在Windows上才有),而C编译的完成的程序会根据操作系统和CPU型号有一定的不兼容性,不过几乎所有的CPU+所有的操作系统上都有C的编译器,所以应用范围比C#还要广。
当然,普遍认为一个熟练的程序员使用C编译的程序效率要高于使用C#编译出来的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ba5ham
2010-11-22 · TA获得超过8834个赞
知道大有可为答主
回答量:2673
采纳率:0%
帮助的人:2503万
展开全部
c语言是面向过程的语言 c#是面向对象的(类似 java),另外 c# 写的程序是托管代码,必须要安装 .net framework 框架才能运行。c 生成的是非托管代码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qplvs12
2010-11-25 · TA获得超过2155个赞
知道小有建树答主
回答量:1636
采纳率:0%
帮助的人:939万
展开全部
C语言是面向过程的程序设计语言
C++是面向对象的程序设计语言
C#是为.net量身定做的面向对象的程序设计语言
举个例子吧:
可以把C语言当作爷爷,则C++就是父亲,而C#和Java就是兄弟两!
建议你不要学C了,学习C++或C#都行,因为面向过程的程序设计语言和面向对象的程序设计语言有很大的不同,直接学习C++没有任何问题
再补充一下:学习C是跟本没有必要的,C++和C#都可以,不过C#比C++容易些,因为C#中没有指针这个东西了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qqjwr
2010-11-22 · TA获得超过1015个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:119万
展开全部
c语言是面向过程的语言 c#是面向对象的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式