C语言和C#语言有什么区别吗?【C#编程1000问】

简介: C语言和C#语言有什么区别吗?【C#编程1000问】

C#编程第0001问:

C语言和C#语言有什么区别吗?

分析:

提出这个问题的朋友一般都是初学者,刚刚开始接触C#语言,但是又知道古老的C语言(ps:现在市场上信息量太大)。这两种语言这两个字母之间就差了一个#,却有着大不相同之处,因此入门时会想知道怎么区分,想要了解异同。

【刘金玉编程】回答:

因为这个问题是针对刚接触C#编程语言的朋友回答的,因此我想尽量使用更加浅显易懂的语言来表述这个答案。

从大方向上看,C语言是鼻祖,而C#语言是孙子。那就说是,如果你在学习C#编程语言,那就意味着你在学习的是孙子的知识。

那么老子到哪里去了呢?

我们这里这样表述吧:鼻祖是C语言,老子是C++语言,孙子是C#语言。

通过以上,我们从编程语言发展的角度你大概了解了吗?

其实,任何编程语言的发展都是为了顺应当下时代的潮流。

计算机发展早期的操作系统叫做unix,主要使用C语言编写的。C语言是美国贝尔实验室于1969~1973年期间开发创造的。早期的操作系统功能也比较简单,主要还是由于早期硬件性能跟不上导致的,但是在早期已经非常了不起了。有一本《unix传奇》的书推荐可以了解一下,从侧面记录了开发该操作系统的开发人员的真实工作。

摩尔定律说过每隔18个月,计算机的硬件性能提高一倍,但是成本价格却降低一半。随后操作系统的发展,编程语言也随着业务发展需要而进一步开发中,于是就有了C++语言。

C++语言主要增强了面向对象的编程思想,而C语言是面向过程的开发。C++语言在继承C语言功能的基础上,还可以将实际业务抽象成类模型。

例如用户信息可以抽象为一个用户类User,在编程时将类模型进行实例化对象,每个实际的对象都是一个实际的用户,不同的对象拥有相同属性,就像人类拥有属性年龄、文凭、钱等,虽然属性相同,但是每个人的年龄、文凭、钱等都各不相同。

通过C++语言用户信息模型化的方式,更容易理解显示业务,有利于把程序做大。所以,现在有支持C++语言的编写框架MFC、QT等,可以很方便地开发大型应用程序。用C++开发的软件程序,运行效率非常高。

随着企业业务的发展,开发成员发现在处理很多企业业务程序时,使用C++语言开发很容易导致内存泄漏,很多问题都是指针使用不当导致的。为了能有更多人参与的软件开发中,需要将C++语言进一步简化,同时使得其中容易出错的地方避免,于是我们的C#语言就应运而生了。

C#编程语言被号称21世纪最重要的编程语言之一。它与.net框架协同工作,使得开发变得更为优雅。C#语言的出现,让人们入门编程开发更为容易,能用更少的时间开发出更强大的软件应用程序。其实,了解编程语言历史的朋友应该知道C#语言还有一个兄弟叫做Java。

早期时Java的诞生风靡全球,使用开发的软件可移植性大大增强。微软他眼红了,因为编程语言市场被抢去大半,本想向当时的sun公司收购Java语言,但因种种原因收购失败,一狠心,微软自己开发了与Java类似的一种编程语言,它就是C#,并且在易用性上远远优于java语言。

      最后,我用一张图来表示一下今天讲到的C、C++、C#、Java这四种语言。

99da46abc4e64c3046d1d5b2fd698786.png

相关文章
|
1月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
34 3
|
1月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别
pymalloc 和系统的 malloc 有什么区别
|
6天前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
17 5
|
15天前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
37 8
|
19天前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
54 4
|
28天前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
43 4
|
1月前
|
Java 物联网 编译器
C#一分钟浅谈:.NET Core 与 .NET 5 区别
本文对比了 .NET Core 和 .NET 5,从历史背景、主要区别、常见问题及易错点等方面进行了详细分析。.NET Core 侧重跨平台支持和高性能,而 .NET 5 在此基础上统一了 .NET 生态系统,增加了更多新特性和优化。开发者可根据具体需求选择合适的版本。
47 7
|
1月前
|
程序员 C语言 开发者
pymalloc 和系统的 malloc 有什么区别?
pymalloc 和系统的 malloc 有什么区别?
|
2月前
|
存储 C语言
C语言:普通局部变量、普通全局变量、静态局部变量、静态全局变量的区别
C语言中,普通局部变量在函数内部定义,作用域仅限于该函数;普通全局变量在所有函数外部定义,作用域为整个文件;静态局部变量在函数内部定义但生命周期为整个程序运行期;静态全局变量在所有函数外部定义,但仅在定义它的文件内可见。
105 10
|
2月前
|
存储 C语言
C语言:结构体与共用体的区别
C语言中,结构体(struct)和共用体(union)都用于组合不同类型的数据,但使用方式不同。结构体为每个成员分配独立的内存空间,而共用体的所有成员共享同一段内存,节省空间但需谨慎使用。