新语言层出不穷,我们为什么还要学习C语言

  一、前言

  为什么要学习C语言?对于理工科学生来说,这个答案可能很简单,因为这是一门必修课。而对于程序员来说,选择一门编程语言在某种程度上对职业生涯的发展会产生重大的影响,所以必须慎之又慎。那么,为什么要选择一门诞生了将近半个世纪的语言?

  本文不是老生常谈的废话,如:“C语言是编程的基础”、”学好C语言,走遍天下都不怕”等等,本文力争详尽而又有理的回答这个问题,旨在成为最好的为什么要学习和使用C的文章。

  二、C语言

  C语言是由美国ATT贝尔实验室的研究员DennisRitchie在B语言的基础上,最初作为改造Unix操作系统的开发语言,并伴随着Unix操作系统兴起而流行,后来,随着微型计算机的发展,C开始被移植到其他操作系统平台上,成为独立的程序设计语言。

  下图摘自TIOBE编程语言排行榜,过去30年90%时间里C都是独领风骚的,仅偶尔被Java超越:

  那么是因为一门语言一直位于排行榜的第一名就该去学习和使用吗?显然不是,人云亦云是程序员的大忌。为操作系统而生的标签注定了C不可能平庸,实话实说,C是一门很难学习和使用的编程语言,没有编译原理、操作系统和计算机体系结构扎实的基础知识,根本不可能把C学的明白、用的顺手。C作为一门工程实用性极强的语言,提供了对操作系统和内存的精准控制,高性能的运行时环境,源码级的跨平台编译等优点,才是我们必须学习和使用C的理由。

  同时,幸运的是C也是个有趣的东西,对编程的认知越深,就会越觉得有意思,我简单列举一些C的优点:

  2.1)结构化设计语言,语法清晰、结构简单,模块化使得程序的各个部分除了必要的信息交流外彼此独立,便于开发、调试以及调试。

  2.2)运算符多,把括号、赋值、强制类型转换等都作为运算符处理,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

  2.3)数据结构丰富,能实现各种复杂的数据类型的运算,引入指针、结构体概念使程序效率更高。

  2.4)为操作系统而生,可以像汇编语言一样对位、字节和地址进行操作,允许直接访问物理地址对硬件进行操作,把高级语言的基本结构和语句与低级语言的实用性结合起来。

  2.5)程序执行效率高,一般比汇编程序生成的目标代码效率低10%~20%。

  2.6)可移植性好,C语言抽象了针对CPU编程的细节,能广泛应用于针对大型操作系统和系统软件的编写。

  2.7)具备强大的绘图功能,和C++一样也可以写出很优雅的二维、三维图形和动画。

  有人说,C是C++的子集,C能做到的事,C++一样能做到,并且还可以做的更好,如:三大面向对象特性、GUI编程。诚然,我承认在GUI编程领域C++占据着绝对的统治地位,至今无人能撼动。但真的有必要用C++来替代C完成工作吗?很多时候C++解决问题的思路真的比C更先进吗?

  三、C和C++比较

  写到这一段的时候我有一种战战兢兢、如履薄冰的感觉,毕竟C、C++是广大程序员都很熟悉东西,讨论起来也是极其恐怖的,其实在关乎信仰的问题上,任何的争论都是无止境的,也是无意义的。我希望大家不要把大量精力用来争论纯粹的语言优势,而是去思考如何的正确的把事情做好,什么是正确的做事——快速高效的开发,保障快速稳定的运行,快速简单的维护。

  四、总结

  下面我列举了10多个目前热门的发展方向,粗略的介绍了下列项目里最常用的编程语言:

  由上图可知,操作系统、编译原理、数据结构与算法等等基础知识,是深入理解、掌握和灵活运用C的重要前提,现阶段程序员职业生涯超过一半的热门方向直接或间接与C有关,我想,学好C的重要性也就不言而喻了。

  PS:牛耳移动互联网学院招生火热进行中,三大热门专业Java、嵌入式、C/C++供你选择,机会难得,不要错过哦!来电咨询或   --

  

  

  网址:   







































台湾治疗白癜风最好的医院
白癜风必须治疗吗



转载请注明:http://www.nydjfy.com/xxzl/2786.html