学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)

c 是“C Plus Plus”的简称。

顾名思义,C 是在C语言的基础上增加新特性,玩出了新花样,所以叫“CPlus Plus”。

C 和C语言的血缘关系

C 和C语言虽然是两门独立的语言,但是它们却有着扯也扯不清的关系。

早期并没有“C ”这个名字,而是叫做“带类的C”。

“带类的C”是作为C语言的一个扩展和补充出现的,它增加了很多新的语法,目的是为了提高开发效率。

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(1)

这个时期的C 非常粗糙,仅支持简单的面向对象编程,也没有自己的编译器,而是通过一个预处理程序(名字叫cfront),先将C 代码“翻译”为C语言代码,再通过C语言编译器合成最终的程序。

随着C 的流行,它的语法也越来越强大,已经能够很完善的支持面向过程编程、面向对象编程(OOP)和泛型编程,几乎成了一门独立的语言,拥有了自己的编译方式。

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(2)

作为能够处理底层事务的编程语言,C 似乎总是在学习难度上吊打其他语言,毕竟一个十几年经验的C 程序员,也不敢说自己精通C 。

所以C 从本质上来说,就是一门学习难度很高的编程语言,更别说,对于我们初学编程的小伙伴了。

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(3)

于是,大多数小伙伴在学习了一段时间的C 之后,几乎都会有相同的感受,大概就是

“我天天学 C ,学了一年,只会搞个小黑框,连个贪吃蛇都做不出来,到底学来有什么用?”

“C 之父”BjarneStroustrup 在创造C 之初,是想要一种能够兼顾在表达高级概念的同时也在底层与硬件沟通需求的语言。

他说,“C 是一种灵活的语言,它既能处理底层事务,也能处理高层事务。但它并非完美,随着语言成熟度、兼容性以及稳定性而来的,是语言的复杂性——我们无法摒弃某些陈旧的部分。”

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(4)

而C 之所以能够几十年长盛不衰,且作为一直排名比较靠前的编程语言,它真正的优势在于:

一方面,它面向对象,允许直接访问计算机,最大程度地提升效率;

另一方面,它也能让你使用可承受的高效方法,(非人工介入地)来掌控系统的复杂度。

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(5)

而作为一种成熟的语言,C 基本上已经覆盖了大家能够想到的一切行业及应用领域——包括金融、农业、航空航天、半导体、设备驱动等等。

目前世界上所有流行的操作系统都是用C/C 实现,比如Window系统,苹果系统等;

目前几乎所有互联网公司服务器的解决方案均选择C/C 实现,如最主流的Nginx服务器,Apache服务器;

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(6)

还有我们比较熟悉的几个领域

一、 游戏

C 是游戏引擎和开发的首选,从维基百科列举的游戏引擎列表中,有61%的制定游戏引擎都是用C 实现的,包括《孤岛惊魂》《反恐精英》《天际》等。

二、 网站

C 是多数网站后端系统的语言首选,排名前五的网站Google、Facebook、YouTube、Yahoo、Amazon中,4个网站都使用了C 。

三、 人工智能

在人工智能领域(语言合成,图像识别等)实际工程化,需要达到几万的并发,这种情况下需要耗用大量的GPU资源,成本非常高。用C 提高计算效率,C 在工程上用处很大。

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(7)

C 的优势在哪里

1、不管你走什么样的技术路线,不管你用不用它做开发,学习C 总会带来长远的好处。一名熟悉C 的开发人员,假如他不是一个偏执狂的话,再学习java或C#,都要容易得多。

2、竞争力小,现在很多大学都主流教java,因为java相对C 简单,而且应用范围也蛮广的,但很多人觉得C 很难所以就放弃了,也就造就了C 竞争力小,而且真正的高级C 程序员很抢手的,可以说是,有钱都不一定招得到。

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(8)

3、工资高,C 程序员工资普遍比其他语言高,当然是在同等技术情况下,不可能一个C 普通程序员和一个java的老鸟比。

如果普通java程序员和普通c 程序员相比的话,基本上都是C 程序员工资高一些,而且C 的上限比java高太多了。

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(9)

而Bilibili上,也已经有百万老九军在老九学堂的陪伴下,一直向着C 的梦想前进着。

学c的和不学c的都沉默了(为什么要学C因为它比你想象的更强大)(10)

我们也希望这么多一直信任着老九而学习C 小伙伴们,能够不仅仅是停留在初学入门的阶段,而是在我们的帮助下,用C 实现或是开发游戏、或是校招、或是就业这样的目标,能够真正地学以致用。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页