这是c语言加油站系列文章的第一篇,主要是为了介绍一下许多新手刚开始接触c语言时产生的困惑:c语言可以干什么?为什么要学习c语言?
使用广泛的编程语言
c语言是贝尔实验室的Dennis Ritchie于1969~1973年创建的,它具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在系统编程和嵌入式方面应用广泛。Ritchie说,c语言是“古怪的,有缺陷的,但也是一个巨大的成功”。下面是TIOBE社区发布的编程语言使用情况图:
c语言——为开发操作系统而生
c语言一开始是作为一种用于Unix系统的程序设计语言而被开发出来,Unix的几乎所有代码都是用c语言来写的。到今天,c语言一直是系统级编程的首选,我们常见的windows、Linux系统都是用c和少部分汇编实现的。同时,c语言也可以胜任应用级程序的编写。
虽然如此,c语言并不是太适合编写大型的应用软件,虽然可以但是那太繁琐。许多比c语言相对更高级的语言更加适合大型软件的开发。c语言主要用于编写操作系统、驱动程序等和硬件联系密切的软件,还有一些资源紧张需要高效的方面,例如嵌入式领域。
c语言更接近计算机的本质
我建议那些想在计算机方面深入研究的人从c语言开始入门。
虽然相比于其他的高级语言,c语言学起来要费力一些,而且表面上好像做不出什么华丽丽的东西。
但是c语言涉及到了更多底层的知识,可以帮助我们更好的理解计算机的运作方式。如果以后想深入研究计算机的原理,c语言会十分有帮助。学好c语言后,在学习其他新语言也会事半功倍。
语言只是工具
许多人问,学会c语言后是不是就什么都可以开发出来了?这是不对的,就像我们学习语文,学好了以后也不一定会写小说是不是?编程语言只是一种工具,用来解决问题,还需要其他知识的配合。
例如用c语言写操作系统,那肯定需要学习操作系统的知识;想要写编译器,就需要学习编译原理的知识;想要做游戏动画,还需要学习图形库的知识。这些都是c语言之外的东西。
当然,编程语言是基本的,每种语言都有自己的特点和优势,关键是要根据需要解决的问题进行选择。当然当我们掌握了c语言后,在学习其他的语言也会触类旁通。
c语言只能写黑乎乎的界面吗
当然不是,c语言可以写出图形界面的程序。事实上,有许多GUI库可以选择:GTK、WxWidgets、QT……如果可以,你也可以用c语言写出一个界面库。
但是,我个人觉得,在学习的时候,图形界面这是看上去华丽而已,并不比命令行界面高级。初学者重点不应该放到图形界面上,而应该是核心的数据结构和算法。基础打牢后,使用界面库也是很简单的事。