编程入门语言,为什么成都C语言培训周末班建议选C/C++

[复制链接]

211

主题

211

帖子

346

积分

中级会员

Rank: 3Rank: 3

积分
346
分享到:
发表于 2018-9-6 13:56:46 | 显示全部楼层 |阅读模式
  编程入门语言,为什么成都C语言培训周末班建议选C/C++

  C语言是什么

  C语言是一种计算机编程语言。

  1970年前后,AT&T 贝尔实验室的 Ken Thompson根据BCPL语言设计出较先进的并取名为 B的语言,之后Dennis Ritchie在此基础上设计发明了C语言, 并首次在UNIX操作系统的 DEC PDP-11 计算机上使用。随后,C语言和UNIX操作系统一起,攻占了计算机世界的大片领地。

  在发展的过程中,出现了许多略有差别的C语言版本。1989年,美国国家标准研究所(ANSI)为C 语言制定了一套ANSI标准, 成为现行的C语言标准,就是所谓的C89。当然经过10年的发展,在C89的基础上又颁布了C99标准。现在流行的大部分编译器完全支持C89,部分编译器完全支持C99。对于初学者来说,掌握经典的C89即可。

  C++语言是什么

  C++和C的关系非比寻常。1979年,当Bjarne Stroustrup在新泽西州的Murray Hill实验室工作时,发明了C++。Stroustrup 最初把这种新语言称为“带类的C”,1983年,改名为C++。C++通过增加面向对象的特性扩充了C。因为C++产生在C的基础之上,因此它包括了C所有的特征、属性和优点。在这个意义上,你可以认为C++是C语言的进化,这个进化的原因是复杂性(complexity)。一旦一个程序的代码超过25 000~100 000行,就很难从总体上把握它的复杂性了。C++突破了这个限制,帮助程序员理解并且管理更大的程序。

  当然今天的C++已经不只是C的进化那么简单,他还包含了其它很多很多的新内容,它是如此的复杂以至于你要花上几倍于学习C的时间来学习他。但由于他和C的历史渊源,所有支持C++的编译器都能支持C。因此他俩也就被合称为C/C++语言。

  C++对于C的进化着重体现在规模上,几乎C++的所有新特性,都是为大规模编程服务的。如果说C语言编程是单兵小组作战的话,C++编程就是集团军运动。

  为何要选择纯C

  在某些时候,我们不得不只使用C语言而不是C++,这种情况称为纯C编程。最常见是因为以下两个原因:

  C++的语法很复杂,所以C++的编译器很难制作。因此在很多平台上没有现成的C++编译器,而C编译器因为足够简单,几乎到处都有,这时就只能用纯C。实际上最初的C++编译器也是用C语言来实现的。

  仍然是因为C++很复杂,为了实现很多特性,做出的程序往往比用C做的类似功能程序体积要大很多,在程序的空间和时间要求比较高的时候,也只好选择纯C。

  上面两种情况经常共同出现,实例之一就是嵌入式设备。各种单片机往往没有足够的内存和处理器能力,在上面实现C++编译器也比较困难,因此往往是纯C开发,而非C++。

  C/C++语言和其他语言有什么关系

  java 只要用一句话就可以概括,它是一种简化了的跨平台的C++语言。掌握了C++的人,学习java几乎是轻而易举。

  basic pascal delphi(其实是objectPascal) perl python 还有其他诸如此类的语言,或者与c处于同一档次,或者与C++处于一个水平,学过C/C++之后,再去学习他们是很容易的事。作者个人比较偏爱和看好python,它的很多特性使他极有前途。

  lisp Scheme是和C的思维方式完全不同的一类,被称为函数式编程语言,在人工智能等领域有奇妙的应用。有兴趣的朋友可以去领略,如果你要成为一个大师,至少要学习其中的一种。

  编程入门语言,为什么成都C语言培训周末班建议选C/C++

  我为什么要学C/C++语言

  考试的人不用讨论这个问题,他们没有选择。如果我们有选择,为什么我们学习C语言而不是别的。

  首先因为C本身是非常优秀的,他是世界上最伟大的编程语言之一。许多人认为C语言的产生标志着现代计算机语言时代的开始。它成功地综合处理了长期困扰早期语言的矛盾属性。

  C语言是功能强大、高效的结构化语言,简单易学,而且它还包括一个无形的方面:它是程序员自己的语言。它的设计、实现、开发由真正的从事编程工作的程序员来完成,反映了现实编程工作的方法。它的特性经由实际运用该语言的人们不断去提炼、测试、思考、再思考,使得C语言成为程序员们喜欢使用的语言。

  在编程规模越来越大的今天,用C往往会遭遇协作型的问题,而C++在保持了C的高效的同时,实现了大规模协作的可能,因而成为了真正工业化的语言。

  C/C++的优秀,使得他是主流的,在20世纪70年代末和80年代初,C成为了主流的计算机编程语言,至今仍被广泛使用。今天几乎所有的操作系统、大部分的(大于70%)的应用软件,90%以上的大型游戏都是用C/C++编写的。

  在对运行速度和资源占用有严格要求的领域,比如游戏、即时控制、嵌入系统,基本都是C语言内嵌汇编语言的天下。

  今天只有一种语言的性能比C强,那就是汇编,优化过的C程序的速度大约是汇编的95%-98%。但汇编基本不是常人用的。所以实际上C就是最快的语言。

  主流的就意味着资料丰富。不论是编程时所需要的文档,还是学习的示例代码,甚至是平台提供的接口和库,C/C++语言版本都是最丰富的。

  业界的算法研究理论研讨,大部分都是C/C++语言,开源代码的78%以上是C/C++.任何一家硬件软件公司,当他开发一款能够编程的设备或是软件,必然会提供C语言的接口函数。其他的语言,就不一定有这样的好处了。不论是计算机图形学、加密解密还是计算机编程的其他领域,C/C++简直就是编程界的普通话。

  根据 International Data Corporation 的统计,C/C++ 是全球开发者使用最多的编程语言。如果确实要投身编程界,不懂C/C++的话,根本就是Mission Impossible。

  如果你还不明白,我只需举一个小例子。假设你现在有机会去学习一门外语,投入时间差不多,你会选择学习英语呢,还是斯瓦希里语呢。(斯瓦希里语流行于非洲东部,为肯尼亚坦桑尼亚等国的官方语种)

  当然,并不是说其他语言不值得学习,存在即是合理,今天存在的各种语言,当然都有它存在的价值,多学一点没有坏处。没有人禁止你在学会英语的基础上再学习法语日语等等。况且为了找工作等现实原因,学习其他语言也是非常正常和必要的。无论过去、现在还是将来,天底下不存在哪一门语言非学不可才能成为高手,思想最重要,“不会XXX语言不算真正的高手”之类的言论实在无聊之至。学C/C++,主要还是通过他学习编程思想。真正的武林高手,难道会局限于手里的那把大剑吗。

  但我们还是强烈建议初学者从C语言开始,因为除了上面所提的好处,C语言还足够的简单。初学者或许会觉得C很难,但请记住,那些是编程之难,不是C之难。当你学过三种以上语言的时候,就会越发体会到C的简单。

  Python语言 作者的另一推荐

  虽然如上所述,C/C++语言有如此之多的好处,但他也不是完美无缺的,第一个致命弱点是复杂性。为了应付千奇百怪的需求,C++提供了很多奇妙的语法从而实现了各种现代编程特性,这就使得C++变得异常复杂。可以充分体现这个情况的一个事实就是,迄今为止,还没有哪个C++的编译器是100%完全实现C++官方标准的。如果有一个程序员对你夸口说他已经彻底掌握了C++的话,你基本可以断定他接触C++还没超过半年。幸好C语言还没有复杂性的困扰。但是开发效率也是C/C++的致命伤。因为过于接近硬件底层,C/C++程序在运行时几乎可以调动一切资源,取得最高的性能。但与此同时,C/C++程序员必须小心维护程序的运行状态,稍有不慎,轻则文件丢失内存泄露,重则死机甚至导致整个系统软硬件崩溃也是有可能的。所谓高收益必与高风险相伴就是这个道理。这就使得开发时必须小心谨慎,开发效率也就提不上去。

  对于性能要求极高的程序,比如要求大量高速3D计算的计算机游戏、密集科学计算的工程软件、同时应付巨量用户的网页和数据库服务器,使用C++是当仁不让的选择。但是对于很多应用来说,些许的延迟是可以忍受的。举例来说,在某个工程中想要得到圆周率的后十万位,如果此时我们不在乎0.25秒和1.25秒运算时间之间的差别的话,就可以选择开发效率极高,而计算速度相对较慢的其他语言来实现。

  在所有这些其他语言中,本文作者强烈推荐的是 Python语言。

使用高级回帖 (可批量传图、插入视频等)快速回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则   Ctrl + Enter 快速发布  

发帖时请遵守我国法律,网站会将有关你发帖内容、时间以及发帖IP地址等记录保留,只要接到合法请求,即会将信息提供给有关政府机构。
快速回复 返回顶部 返回列表