一、什么是C语言:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
二、C语言的优势:
C语言具有其它语言所无法比拟的优势,因而被广泛应用,其具体优势如下所示:
1、简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2、运算符丰富 C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富 C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活实用 C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5、允许直接访问物理地址,对硬件进行操作 由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
6、生成目标代码质量高,程序执行效率高 C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
7、可移植性好 C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
8、表达力强 C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。
C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
三、C语言的应用:
1.单片机和嵌入式系统行业,这个行业是C的黄金行业,也是目前IT中的高薪行业,这个行业里高手很多,对编程和硬件设计的要求很高,C因为可以和汇编结合来控制硬件,在这个行业里广受欢迎。
2.程序设计邻域,这个邻域里用的编程软件很多,有很多的语言,C在其中的分量显的比较薄,但仍不失为一个重要的角色。
C语言广阔的就业前景吸引着越来越多怀揣梦想的学习加入C语言学习的浪潮,为满足学生的学习要求,帮助学生实现梦想,3G梦工场软件学院应运而生。3G梦工场自成立以来一直致力于致力于对3G前端应用开发工程师、iphone 软件应用开发工程师、Android开发工程师、J2ME 开发工程师、Windows Mobile开发工程师的培养。
3G梦工场采取小班授课、项目教学、商业项目开发的教学方式,通过企业定向培养,入学签订就业推荐协议等人才培养模式,吸引众多大学生就读。课程提供内容丰富、教材形式多样,配图教材,多媒体动画PPT,清晰的授课思路以及随时可以观摩的在线咨询。提高授课质量,降低学生学习难度。通过优质的教育让学生在不仅掌握C语言,还掌握其它软件开发技能,让学生的就业范围更广!
个人看法:
说C语言过时和没用的人是无知。当然,学会c很容易,学好是很难的,精通那是相当有难度的。边看现在遍地是java、c#,貌似很流行。但是真正掌握了c的人不多,学好了的话会很有前途的。想想看操作系统是用c写的,硬件驱动程序也是用c写的,比如说显卡驱动。而且由于c是中级的语言(高于汇编语言,低于java等高级语言,这个级指的是与硬件的关联度),因此和硬件紧密结合,设计到硬件编程的基本上都有c的应用天地。网上说c前景不好是因为真正学好c的人不多,不然薪水也是很不错的。学c要往硬件底层发展,比如看操作系统源代码,编译器源代码,一些开源的显卡驱动程序,还有一些公开的游戏引擎等。现在一般嵌入式系统编程都是用的c。另外,大学学c语言一般都是用的谭浩强的那本书,不过现在感觉那本书真的太肤浅了,一些问题的内涵没说清楚。还是用一些国外的c语言教程吧,中文翻译本。c语言的精华是指针,指针一般和链表结合起来。没学会用指针那就像没学过c一样。
建议:如果不是电子、通信、计算机、软件等专业,不靠编程吃饭的话,没必要把c学的很深。业余的话最好学一些perl或python 这些脚本语言,比较有用,而且比较有意思,也不难。当然,如果是纯软件或计算机专业的话,建议深入学习c后再学习c++。