C语言与C#的区别

                       
                                                                                   

C#是三大主流OOP(面向对象编程)语言(C++,Java,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#:指针是什么? 下次在写吧,改吃饭了!!!”

               
                                       
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值