C语言是高级语言吗?
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
1、机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。
2、汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
3、高级语言主要是相对于汇编语言而言的,是较接近自然语言和数学公式的编程,基本脱离了机器的硬件系统,用人们更易理解的方式编写程序。编写的程序称之为源程序。
除了机器语言和汇编语言外的所有编程语言,都属于高级语言。 所以C语言也是高级语言的一种。
当然是高级语言。
C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。
C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。
常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,Turbo C等等......
C语言的难点就是指针和内存操作,在其他高级语言中,这些内容都被优化掉了。正因为C语言有指针,对内存的操作十分灵活,所以才广泛应用于底层驱动和协议栈相关的领域。
但是在应用级别,C语言就力不从心了,因为其他高级语言如Java和C#就是针对高级应用而开发的,它的目标就是模块化,使用简单。
所以,你就会发现使用C#等开发窗口程序,就是拖拖拽拽的过程。所以,并不能说C语言是最有用的,只是更适合某个领域而已。
之所以认为C语言难,大多都是没把指针和内存搞清楚的缘故,而且有的教材也没有教明白,甚至都有错误。之前我看过那本出版量最多的广泛被推荐的教材,书中居然就有指针就是地址的这种错误概念。
C语言是一种低级语言,介于汇编和高级语言之间,既具有高级语言的特点,又具有汇编语言的特点。
C语言由美国贝尔研究所的D.M.Ritchie于1972年推出。1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
参考资料: http://baike.baidu.com/view/1219.htm
二进制是机器语言,这个毋庸置疑。
汇编语言在机器语言的基础上,用简单的符号让人能理解其意思,类似于mov,pop,add之类的,见文生义,但它的操作对象停留于最底层的CPU对寄存器、内存、端口、栈等的操作,主要还是指导机器工作的,但是不利于人的阅读和编辑,即使是c上的一个最简单的i++操作,翻译成汇编后也需要3条汇编语句,所以叫汇编语言为低级语言。
高级语言是在汇编语言的基础上发展起来的,主要是方便人的阅读和编辑的,这是高级语言的定义,所以C、C++、C#、pascal、VB、java神马的一系列都是高级语言。
另外有人说C是中低级语言,是指C里边可用指针对内存直接操作,更加贴近机器。我觉得比较更准确的说法是:
C语言是更贴近底层(指计算机)的高级编程语言。