前言
C 语言是由美国 AT&T 贝尔实验室的研究员 Dennis Ritchie 在 B 语言的基础上,最初作为改造 Unix 操作系统的开发语言,并伴随着 Unix 操作系统兴起而流行,后来,随着微型计算机的发展,C 开始被移植到其他操作系统平台上,成为独立的程序设计语言。
从上世纪七十年代开始,许多编程语言都曾受到程序员的青睐。尽管这些语言很好、很有用,但从高级语言开始学习的人在编程知识方面都有许多遗漏。比如,如果你先学了 Javascript,那么当别人告诉你某个语言可以实现类型强制转换,你会觉得不知所云。
这个例子当然无关紧要,但如果由于知识的缺口而花费大量时间去实现一些 C 语言很容易做到的事情,那这些缺口的影响就会放大十倍甚至更多。所以,虽然二十一世纪人们不愿意再学习 C 语言,但由于以下原因,学习 C 语言能让你的编程之路事半功倍。
C 语言不会束缚你
C 语言本身自带的功能很少。Python 程序员可以使用哈希函数,而 C 程序员必须自己实现哈希函数,一切都得自己写,而没办法使用函数库。所以与 Python 等耗费上千行代码实现一个简单的哈希函数的语言相比,C 语言更快,且不会占用太多 CPU。C 语言不会束缚你,因此它会让你成为优秀的程序员,因为你必须完全理解你写的函数的意义,才能让它正确工作。
在学习 C 语言时几乎可以学到所有的语言
C 语言非常优秀,今天许多流行的语言都是在 C 语言的基础上发展起来的。例如,Objective-C 是 iOS 开发的首选语言,它就是 C 语言的扩展。Web 后台开发者中最流行的 PHP 是用 C 语言写的。其他用 C 语言写的语言有Javascript、Go 和 Python。所以,学习怎样写 C,能让你学习其他语言易如反掌。
所有现代操作系统都是用 C 语言构建的
Mac、Windows 和 Linux 都使用 C 语言开发主要的功能。这是因为 C 轻量且强大,可以用来完成各种复杂操作,如在屏幕上生成图形、加密大文件等。所以,如果你是个 Linux 爱好者并且想开发自己的发行版,那么了解 C 是必须的。
C语言强迫你理解,没有“黑匣子”
如果想想正确地使用 C 语言,就必须精确地理解你想让计算机做什么。对于 C 语言程序员来说,寄存器编程是家常便饭,而其他语言使用的函数就像个黑匣子……“放点东西进去,拿点东西出来”。
C 程序员必须理解计算机硬件的体系结构,才能有效地使用 C 语言,而高级语言为你做好了一切……使得新手程序员习惯了无视一切,并把一切都想得很简单。
除了上述这些理由外,学习 C 语言的理由还有很多。绝大多数 C 程序员都能碾压那些只学过高级语言的程序员。C语言强迫你理解,没有“黑匣子”
【文章福利】:小编推荐自己的C语言交流群:967051845!整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!~
C语言的优势
1.效率高
C语言效率高是针对其他第三代编程语言来讲的,C语言是编译型语言,源代码最终编译成机器语言,也就是可执行文件,从此CPU就可以直接执行,如图1-6所示。
除了编译型语言,目前很流行的还有解释型语言,像Python、Ruby、JavaScript这些都是解释型语言。解释型语言不直接编译成机器语言,而是将源代码转换成中间代码,然后发送给解释器,由解释器逐句翻译给CPU来执行,如图1-7所示。这样做的一个好处就是可以实现跨平台的功能,缺点就是效率相对要低一些,因为每执行一次都要翻译一次。
打个通俗易懂的比喻:编译型语言就是做好一桌子菜再开吃;而解释型语言就是吃火锅,想吃什么,就下什么料。很明显,吃火锅相对是比较费时间的。
2.灵活度高
说到灵活度,恐怕没几门语言可以跟C语言相媲美。C语言不仅提供多种运算符,还可以完成类似计算机底层操作的位运算,语法简单、约束少,拥有丰富多变的结构和数据类型,还拥有可以直接操作计算机硬件的能力。这一点大家在学习到指针的时候将深有体会。指针可以说是C语言的灵魂,C语言有多灵活和强大,完全取决于使用者对指针这一知识点的掌握程度。所以学C语言的人,有些成了“大神”,有些仍然是初学者水平。
3.可移植性高
可移植性高是指源代码不需要做改动或只需稍加修改,就能够在其他机器上编译后正确运行。
统计资料表明,对单片机来说,不同机器上的C语言编译程序80%的代码是公共的,因此使用 C语言的编译程序更便于移植。另外,无论是Windows、Linux还是苹果的Mac OS系统,抛开现象看本质,它们都与C语言有着不可分割的联系。
下面列举了 10 多个目前热门的发展方向,粗略的介绍了下列项目里最常用的编程语言:
由上图可知,操作系统、编译原理、数据结构与算法等等基础知识,是深入理解、掌握和灵活运用 C 的重要前提,现阶段程序员职业生涯超过一半的热门方向直接或间接与 C 有关,学好 C 的重要性也就不言而喻了。
福利(免费送书)
小编C工作也有五年了,推荐个C语言/C++学习交流群:967051845!里面整理了一些个人觉得比较好的学习书籍、视频资料共享在群文件里面,有需要的可以自行添加哦!~
网友评论