c#跟c语言有什么区别?

如题所述

原理上的区别:
c#和java类似,c#是一门半编译型半解释型语言,意思是:
A.cs源代码文件被编译器编译(编译、链接)成A.exe(A.obj、A.exe)文件,而文件A.exe中存放的并不是某一款真实CPU(比如intel的x86处理器、AMD的处理器)的机器指令,而存放的是可以一种虚拟处理器(即虚拟机,类似于java虚拟机,这里指的不是像vmware那样的虚拟机)的机器指令。当双击A.exe时,实际上系统是,让该虚拟机来解释A.exe中的指令,虚拟机将A.exe中的指令解释为当前真实CPU上的指令,并将解释后的指令在真实cpu上运行,以让A.exe运行。
从A.cs转化成A.exe是编译的过程,而虚拟机解释A.exe并在真实CPU上执行指令是解释的过程。
而C语言是一门纯粹的编译型语言,A.c被编译器编译成A.exe,而A.exe直接在真实CPU上运行,没有解释的过程。

语法上的区别:
c#语法实际上类似于java,也就是说处处都是引用类型(其实就是c语言中的指针,但不需要写星号)。
C语言除了指针类型,还有结构体。结构体的存在,就导致传参数时对象复制了。而C#中传参数时不会复制对象。
当然了c#是面向对象的,c语言是面向过程的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-03-15
C#使得C++程序员可以高效的开发程序,且因可调用由
C/C++
编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#
相似回答