2017年只剩最后一周啦!
2018年真的要来啦!
C语言是面向过程的,而C++是面向对象的。C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
被问得心头一疼
别怕
新年新气象
想有的还是会没有的 [耿直脸]
C语言,不老的传说
最受欢迎的歌一定是被听得最多的,最受欢迎的语言一定是被用得最多的。C语言现在用得多吗?在业界,一般的答案是:如果一件事可以用X语言做,就一定不要用C语言做。
这里的X可以代指任何语言。天啊,这好象是在说“如果可以听X的歌,就一定不要听周杰伦的歌”。这是在评价周杰伦还是曾轶可啊?
哪个编程语言是最受欢迎的?每个人都会有自己的主观看法。还是用客观的数据说话吧。
TIOBE在2016年8月公布的程序设计语言受欢迎程度的趋势图。可以看到,C语言始终处于前两位,而且最近大有再次夺回第一位的势头。
能不用就不用,还如此受欢迎,这就有些让人费解了。dmr曾经说过一句话:“C诡异离奇,缺陷重重,并获得巨大成功。”因为诡异且有缺陷,所以会被尽量避免使用,取而代之的是弥补了这些缺陷的语言;因为确实获得了巨大成功,所以它至今仍大受欢迎。一个成功的例证是,图x-x中列举的当今最受欢迎的10种语言,除去C语言,剩下的9种中,有7种都直接使用、间接引用或部分借鉴了C语言的语法(比如,它们语句的结尾都要有一个“;”),只有Visual Basic和Python的语法里找不到C的影子。凭这等世界第一的影响力,受到欢迎也就在情理之中了,尽管它是那么的让人爱恨交织。
小编推荐一个学C语言/C++的学习裙【 二六三,六八八,二七六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
C语言的爱与恨
C语言设计原则的第一条是:“信任程序员。”对程序设计语言了解不多的人,不会觉得这句话怎样。但对真正的程序员来说,凭这句话就足以对C语言爱一辈子,爱得死去活来。
C语言一夫当道的年代,计算机相当昂贵,但速度比不上现今的手机,内存都是以KB为单位计算。所以,那时候对程序最基本的要求就是效率。C语言完全满足人们对效率的苛求,精心设计的代码可以极大地节约计算机资源,又不像汇编语言那样难用,所以受到程序员的欢迎。后来,硬件越来越便宜,性能越来越高,程序的运行效率已经不是追求的主要目标,安全性、稳定性和是否易于维护等变得重要起来,C语言的弊端便显现了。
C语言给程序员最大的发挥空间,让他们自由地在代码中挥洒激情和创意,从不去质疑这些代码是否会带来危害,因为它“信任程序员”,相信程序员的决定一定是正确的,即便有错误,也一定能自己修正。无限制的自由,在某些人的手中是创造力的源泉,而在另外一些人手中,却能成为混乱的根源。随着软件系统规模的膨胀,需要的程序员越来越多,综合水准越来越低,出现错误的概率越来越大,而每一个低级的错误都可能会引发大灾难。很多人把这种乱象产生的原因归罪于C,开始怀疑它,甚至恨它,却从不反省自己糟糕的编码能力。于是有人说,给这匹野马加上缰绳吧,别让它再恣意狂奔。但是C拒绝了锁链,于是很多语言穿上C的外衣,自己挂上锁链,站了出来。因为它们看上去很像C,所以大家很容易接受;因为它们挂着锁链,所以它们不再信任程序员,而是指手画脚地告诉程序员,这件事情该怎么做,那件事情不能怎么做。如果程序员不听它们的,它们就拒绝工作。这样乱象解除了,开发速度加快了,多人合作容易了,错误减少了,对程序员能力的需求降低了,因而工资也降低了,老板开心了,业界繁荣了。平心而论,“一件事情可以用X语言做,就一定不要用C语言做”确实是一个很好的策略,尽管程序员会失去一些自由,但在合法的范围内仍有一定的空间可以发挥创造力,而且这些创造力很少创造出负面效果,综合起来能让老板、程序员、用户皆大欢喜。但程序员,尤其是受人尊敬的程序员,他们的血液中天生就充满着不安分,向往自由的黑客生活,所以他们会一边抚摸着身上的伤口,一边怀念那个鲁莽却无往不利的老将军,怀念在他手下无拘无束的日子,怀念被他激发出的层层潜能。这个老将军是程序员心中永远的战神。
小编推荐一个学C语言/C++的学习裙【 二六三,六八八,二七六 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
C语言教给我们的事
现在,还需要使用C语言的地方大概只限于下面三个领域:
C语言仍然是编写操作系统的不二之选。它为操作系统而生,能更直接地与计算机底层打交道,精巧、灵活、高效。最重要的,操作系统的开发者都是最顶尖的程序员,他们有充足的能力和经验驾驭C语言。
在对程序的运行效率有苛求的地方,比如嵌入式领域,C语言也是首选。不过,嵌入式系统现在的硬件性能也已经足够强大,而功能要求越来越高,所以C语言的生存空间正在缩小。
在需要继承或维护已有的C代码的地方,还需要C语言。有很多影响深远的软件和程序库最早都是用C开发的,所以还要继续应用C。但是,它们中的很多已经开始使用其它语言重写,那些C的代码早晚有一天会被抛弃。
应用面如此窄,学它能有多大用处呢?
如果单纯从“用不上”这个角度得出“学C语言没有用”的结论,是有失公允的。即便对计算机及相关专业而言,C语言的“用处”也不算大。学习C语言的意义在于,它为我们打开一扇了解计算机的窗口。在几乎做任何事情都离不开计算机的今天,越了解计算机也就意味着越能利用好计算机。
美国卡内基梅隆大学计算机科学系前系主任周以真教授在2006年发表了一篇著名的文章——《计算思维》。文中谈到“计算机科学的教授应当为大学新生开一门称为‘怎么像计算机科学家一样思维’的课,面向非专业的,而不仅仅是计算机科学专业的学生”,这是因为“机器学习已经改变了统计学。……计算生物学正在改变着生物学家的思考方式。类似地, 算博弈理论正改变着经济学家的思考方式,纳米计算改变着化学家的思考方式,量子计算改变着物理学家的思考方式”,所以“计算思维代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用”。
不过遗憾的是,我们现在还很少有学校开设这样的课程。所以程序设计课在某种程度上肩负了传播计算思维的责任。这也是对于不需要使用C语言的学生而言,最大意义之所在。
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等
总之,不管你该不该学C,适不适合学C,既然这门课已经开了,而且有不错的老师带领,那么就好好抓住这个机会吧,别把时间浪费了。也许一个学期之后,你会发现自己在程序设计方面的天赋,进而在这方面努力,最后成为一名受人尊敬的黑客呢。
领取专属 10元无门槛券
私享最新 技术干货