c语言和c加加先学哪个(c++是在c语言的基础上演变来的,那为何c++没有代替c语言呢)
本文目录
c++是在c语言的基础上演变来的,那为何c++没有代替c语言呢
为何C++没有替代C语言?
C++和C语言的关系
C++确实是在C语言的基础上演变而来。确切说,是在原始的C,即K&R C的基础上演变而来的。和现代的C99,C11,C18之间是分支关系。
要明确一点:C++并非C语言的继承者。
从C语言演变而来的其它语言
从C语言演变出许多其它语言,关系很近的除了C++,还有Objective C(就是苹果大力使用的那种语言)。其它的如D,Go等语言也深受C的影响。
需要说明的是:即使C语言需要继承者,C++并非唯一候选人。
C++的来历
C++是在OOP理念流行时,针对C不能原生支持OOP的问题而推出的改良品种,刚开始只是一套预处理标准,后来则发展成了另一种语言。
C++并不孤单,Objective C几乎与其同时诞生(80年代初期)。
由于性能优势(相对于Objective C),C++在竞争中压倒了Objective C,流行了起来。
C语言的优势
C语言是为操作系统级底层开发而设计的。在实践中,C语言在这一领域长期处于统治地位。
相对于C++,C语言不包含那些针对大型应用级程序所增加的复杂性,这也带来了一些优势,比如:
- 简单易学,稳定一致:C语言简单,易学。一个认真学习了一年C语言的人,能看懂绝大多数的他人编写的C程序源代码;相对来说,一个认真学习了三五年C++的人,也很难确保能看懂绝大多数他人编写的C++源代码。
- 编译简单、快捷:C编译器比C++编译器简单很多,要支持一颗新CPU的代价也低很多;同时,编译速度也快很多;在C++发展的早期,编译器跟不上语言标准的发展是一种常态,也说明了C++语法的复杂对编译造成了很大影响。
- 基本运行时简单:举个例子,在典型的CPU上,只需十几行最多几十行汇编代码,即可启动一套完整可用的C语言运行时,跳转到C的main(或同等)函数执行;对于其它语言,这一步要复杂和漫长很多。
- 和汇编语言接口简单:比如汇编代码中调用C函数,相对于调用C++函数,方便、简单。
其实C语言从来就不是功能特别多的一种语言。比C语言更古老的ALGOL系列语言功能和语法特性都远超C语言。C语言本身就是精简功能的产物。是做减法、而不是做加法的产物。
如果有一种语言能完全替代C,那这种语言一定要在C语言的主场,即操作系统级底层开发领域超越C语言。这种语言一定是减法做得好的语言。C++不是这种语言,至于哪种语言能达成此目标?且让我们拭目以待吧。
有c语言基础c++和java先学哪个
推荐学习java。C++相比java来说,学习难度更大,使用范围更窄,就业也没有java的岗位多。
java的优势如下:
- 学习简单。虽然java9开始越来越多的新东西加入到了java语言中,但是相对于c学习起来还是太简单了。有c基础的话,学习java应该很快就可以上手。但是相同的时间,恐怕你连C++的编译可能都通不过。
- 丰富易用的生态。java有maven和gradle这样成熟的依赖管理工具,孕育了强大的生态环境。你想要的大部分功能都可以找到相应的java类库,利用maven或者gradle仅需要几行代码即可将第三方类库引入到你的项目之中。C++至今标准混乱,没有统一公认的包管理工具,引入第三方类库比较困难。
- IDE资源丰富。java有eclipse、NetBeans、idea等多个功能强大的IDE,免费且强大,付费IDE更不必多说。C++的IDE除了visual studio之外免费的都不好用,付费的倒是有clion等。
希望这个回答能对大家有帮助,喜欢的话点个关注,谢谢。
本文相关文章:

哪一个编程语言比较好?什么是pypl,以及tiobe-index的不同
2025年4月5日 03:30

java接口代码(不同编程语言的程序可不可以通过接口相互调用)
2025年4月1日 13:00

stakeholder theory(英语语言文学硕士毕业论文答辩一般会问什么问题)
2025年3月29日 17:00

在C语言中 z=x>y x: y; 这个表达式是什么意思啊,求解?if(i=a<ba:b;i>0;i--)啥意思
2025年3月29日 11:50

谭浩强c语言电子版(哪本书最适合初学电工电子比如初学C语言就用谭浩强C程序设计,单片机就郭天祥单片机)
2025年3月23日 06:30

易语言辅助论坛(请问想学写游戏脚本,是学易语言还是学按键精灵)
2025年3月18日 14:40

编程学哪个语言好(现在学习编程,学那个语言简单点好学,好就业)
2025年3月9日 16:20

c语言程序设计第三版(软件工程大一新生,自学C语言用c程序设计第三版还行吗)
2025年3月7日 21:20

最容易学的编程语言(JAVA是不是目前最容易学最容易上手的编程语言)
2025年3月7日 05:30

c语言编译器安卓版(暑假打算写个基于安卓的C语言编译器,请教大佬该学习哪方面的知识)
2025年3月4日 04:30
更多文章:

江苏福彩15选5开奖结果(福彩15选5中三个号码有没有奖啊)
2025年3月13日 00:50

act、rpg和arpg游戏之间有什么区别?什么是ACT游戏~
2025年2月28日 22:50

wordpress怎么搜索别人(如何查看别人wordpress的博客)
2025年3月24日 18:20

localhost8888的网址(在IE浏览器里面输入“http://localhost:8888/“怎么跳到百度页面)
2025年3月6日 18:40

flex使用方法(亚马逊Flex司机为何使用机器人“欺骗性地”完成更多工作)
2025年3月28日 09:50

c语言教程app软件下载(最近想学习C语言,不知道用什么软件,请大家提供个下载地址)
2025年3月13日 00:10

excel vlookup函数(excelvlookup函数怎么用)
2025年3月6日 11:10

consult的形容词(are 后面consult什么形式)
2025年3月30日 06:20

tree planting annal怎么用?annal passholder什么意思
2025年4月3日 06:50

false是1还是0(php 里面,0、1和false 、true有什么区别)
2025年3月8日 02:40