学C语言好,还是学C++好呢?这两个专业在哪些领域用得最多?

每日一发小视频


可以从另一个角度思考这个问题,一个人编程几年一定会接触不止一门语言,而这些语言或多或少都需要调用本地方法,即c/c++。而java、c#或其他脚本语言的本地调用,根据编译器的不同,大多数只支持c风格调用,当然并不是说不能调用c++的对象方法(比如java的jni),而是代价较高,即便同是c++编写的动态链接库(dll)相互间调用,也不是很方便,并且存在严重的跨平台问题(只要是涉及到调用本地c++对象方法,封装性和性能两者不可兼得),因此本地c调用才是最优解。因此我建议不用纠结是c还是c++,因为无论是哪一个,c都是不可能绕过去的,必须要掌握。另外,既然你已经决定要学c/c++,那么以后不可避免要涉及到编译器的相关知识,而只有掌握c,你才可能对其有更深入的理解(而面向对象的宗旨是封装和抽象,即让你更少的了解实现细节),而只有了解c,你才知道调用本地c++对象方法是多么复杂的一件事,这也从一个侧面说明了这两种语言有多大的不同。追求对c的兼容绝对是c++发展历史上最沉重的包袱


prompthu


作为一名一线研发工程师,先说说自己的看法,首先来说说答案,如果打算以后从事纯C开发的工作,那么显然没有必要去学C++了;相反,如果准备从事C++相关的工作,那么C语言是必须花费时间去学习的,不懂C,去维护别人的代码,或者使用一些第三方开源库遇到问题你还是很头疼的。

再来说下二者的领域划分吧:

目前,C++应用较多的领域主要有游戏、服务器、桌面应用、网络应用程序、图像处理、安全行业等。

C语言呢?主要有LTE通信领域、操作系统、嵌入式平台等。

下图是通过拉勾网搜索的C和C++的全国招聘需求,当然可能不是很准确,但是我想可以在一定程度上说明问题。

最后提到前景,我想现在的程序员,只懂一门语言的估计是很少的了,语言,永远只是你解决问题的工具,最快最合适的完成任务的才是最好的。所以,给出的建议是,如果你是在校学生,建议C/C++一起学习把,毕竟在学校还是有大把大把的时间。如果你已步入社会,那么建议直接JAVA把,相比C/C++这两个更有市场,谢谢。

如有不同意见,欢迎关注留言,等你评论,等你「一鸣惊人」!

一个程序员的奋斗史


我曾经是一名资深的程序员,在初创公司有着丰富的工作经验,欢迎关注我,和我一起分享职场,科技,互联网创业等方面的知识。

C++语言是基于C语言发展而来,C语言的语法C++基本通用,所以不要犹豫,先把C语言学好,这是必修课,C语言学精以后,C++自然就手到擒来了。

看看他们的排名,其实C和C++是不分家的。

至于学好C语言以后,你想留在C语言领域继续深造还是继续往C++领域去深造,这就要看你从事的行业了。

我来谈谈这两个语言分别在哪个场景使用的较多:

一、C语言

C语言主要用在底层软件,操作系统,服务器底层工具链的开发较多,适用于MCU的驱动,嵌入式系统的底层软件,服务器底层工具测试等领域。

学号C语言可以从事的行业有很多,比如:智能硬件领域,小家电领域,人工智能领域,物联网终端,机器人领域等等。这几年由于智能硬件、物联网、机器人领域的兴起,C语言也是水涨船高。非常有发展前景。

二、C++语言

C++是一门面向对象的语言,要比C语言更高端,定位是要比C语言更高性能的领域。C++语言比较适用于音频处理,视频处理,游戏引擎,计算机桌面软件等大型场合。可以说C++适用的领域是相当广泛的,各行各业都能找到它的身影。可是由于近些年JAVA,PYTHON等语言的兴起,C++语言的使用已经没有那么大的市场了,JAVA,PYTHON等语言简单易使用,受到大家的广泛欢迎。

所以,你要选择什么语言进行精修,和你从事的行业有着莫大的关系。笔者只提供部分思路供你参考,具体选择还要你自己去发现。


祝你前程似锦,希望我的回答对你有所帮助。请记得关注我哦,并在下方留言,我们一起探讨。我可以给你更多的参考意见。


社会关注聚焦


首先要明确一点,C和C++是不同的东西,很多回答都认为它们是一体的,是严重误导初学者。它们遵循不同的标准体系,运用领域不同,编程思想不同,仅仅是部分语法相似而已。

一些回答说C++比C更高端,更有前途的,那更加是是胡说八道,误人子弟了,这两种语言应用领域不同,不存在谁更高端,谁更有前途的说法,要讲高端,前途,开发效率,一些新兴的语言更合适。

C语言适用于嵌入式,操作系统,硬件驱动,高性能网络服务器(nginx,Redis等)等软件的编写,相对C++而言更加偏向底层,适用于变化不大,稳定性要求高的场合。C语言语法简单,入门相对容易,学好C语言有助于对计算机体系的理解。C语言本身缺乏类似C++的STL的标准库,每个项目,不同数据类型要单独实现一套数据结构和算法,这方面不如C++灵活,高效。但一些人说C语言不适合开发大型软件,开发效率不如C++,这些都是严重误导新人的,C语言在积累了通用数据结构和算法或直接采用优秀的第三方库之后,开发效率和C++差别不大。像操作系统,数据库这种大型基础软件用C语言开发的不在少数,C语言怎么就不适合大型软件了?影响大型软件开发主要是管理,而非语言,设计不合理的C++代码的腐败速度会比C语言慢么?

C++适合游戏,界面,数据库的编写,偏向应用层。C++是程序员两级分化最严重的语言,也是从入门到放弃人数最多的语言。优秀的C++程序员可以写出很漂亮的代码,普通的很容易写出狗屎,滥用语言特性,尤其那些认为C语言和C++差不多的人,C++标准更新得比C语言快很多,引入的新特性也很多,有C语言基础对学C++唯一的好处就是会一些非常基础的语法,其他高级语言特性,设计模式,标准库,统统要从头学起。C语言有师傅带,三年成材,C++有师傅带,五年未必成得了材。自学?两种语言都必须自己有天赋和悟性才行,两种语言都比较难。都是属于学习难,做东西更难,精通难上加难的典型。

人生苦短,C++我是不推荐的(除非工作不得不用),C语言可以学习下,但别指望短时间内做出有用的东西,语言了解的语法之后,还要掌握编程环境,熟悉这种语言编程思想,大量阅读优秀的源代码。

建议了解下新兴的语言,golang,rust,swift等,有余力就多学几门,挑选下适合自己语言和方向。


coord


c语言和c++这两种语言虽说看着差不多,但实际上应用领域还是差别比较大的,也不能简单的说哪个更好。

编程语言有很多种,目的就是要让机器或者是设备“理解”我们的意图,执行相应的动作。最底层的是机器语言,就是二进制编码,机器只能读懂二进制编码。在上一层就是汇编语言,c语言等,属于低级语言。再上一层就是c,c++,c#,java等,都属于高级语言。低级语言是可以转成二进制编码的,而高级语言只能通过低级语言才能变成二进制编码。高级语言编写的都是应用程序,而低级语言编写的是底层程序。

这样对比后,我们了解到c语言既可以编应用程序,也可以编写底层程序。而c++只能编写应用程序。并且c语言编写应用程序明显不如c++方便,所以基本上没有人用c语言编写应用程序。

目前c语言主要应用于嵌入式开发,各种单片机的底层程序都是c语言编写的,并且c语言的跨平台非常好用,兼容性很好。学好c语言之后,主流单片机的编程都不成问题。并且verliog和c语言相似度很高,之后学习会变的很轻松,fpga开发会容易很多。

c++语言主要编写应用程序,上位机软件。和c语言的侧重领域不同。

所以这两种语言不能说哪个更好,只能说哪个更适合你。如果是做嵌入式底层开发,那就必须是c语言了。如果是做程序设计,可以选择c++学习。如果说还没有方向,那就先学习c语言。相对于c++,c语言更容易一些,并且目前有很多语言和c语言的相似度很高,之后学习其他语言也比较容易。

学习c语言推荐这本书


MY黄土高坡


个人推荐学习C++.

其实这两种语言有非常多的重合点,学习了其中一门,另外一个不用学也能用起来。而且这两门语言通常情况下都被认为是可以互相替代的。C++里面不使用面向对象那部分就和C差不多了。那为什么推荐C++呢?因为个人认为面向对象编程是一个非常好的编程概念,学习了它之后,再涉及其他更高级一些的语言时就会非常容易上手。而且,是的,你可能会说,你只想精通一门语言,但是你工作中绝对会用到其他的语言或多或少。

因为个人工作中往往会使用多种编程语言,对这两门语言的细致区别不是很清楚,故不做回答,望见谅。


UselessProgrammer


我以前是c++工程师,做的是图像算法。现在是C工程师,做的是服务器。如果你想做那种应用,请用cpp,如果是在性能要求极高,请学c。cpp很尴尬,为啥呢?因为高不成低不就,所以只能在那种客户端应用上搞搞。就拿算法来说,如果真的对性能要求极高,人家直接用c去实现,而不是用cpp


星空147480491


当然是学习c++了。vc++提供了编程的框架及丰富的美class,其中的MFC是微软的精华所在,vc的资料详细地系统地禅述了构建大型程序的基本理论。

MFC首先应用于多进程,多线程及定时器,回调函数的广泛使用。这中间用到临界区等数据共享判断。

MFC提供dll链接库,它使得开发大型软件成为可能。比如office软件开发,微软动用了几干人在开发,请问,用c能做吗?能把庞大的任务分成无数个dll进行开发,再动态地链接在一起吗?

有人说vc++不能开发底层,简直是胡说。windows无数的设备处理都是vc++开发的,你说他不行?无知到了可怕的程度。

MFC提供丰富的多

对于图像,文件,网络,远程控制等处理,更是其强项。

c++的MFC是最历害的底层的,如网络通讯,工业控制的数据传输,CAN,物理地址的转换等,用起来都非常好。

c编程效率太低了,适合于不动脑筋的低层人士。

MSDN有着几十G的文档资料,是比尔.盖茨先生对人类最大的贡献,是我们今天用到的微软app的源泉。

c语言在2000年之前很流行,我本人当时也用c做了大量的应用程序。现在还在用,就太幼稚及无知了。


beijingwanger


C++是有C发展而来,由于C语言比较适合小规模程序运行,但是当问题比较复杂、程序的规模比较大的时候,C语言就会展现出它的局限性,于是就有C++的产生可以处理大规模的程序。

第一个问题他们使用频率,C更多是底层开发,核心驱动,嵌入式+单片机的开发等领域开发,而C++是由C语言发展得来,C语言能开发C++都可以,而且比C功能更多,我们常见C++开发系统软件开发,大型游戏开发等待。

第二个问题他们发展前景,本人觉得C++更有发展前景,当然这不是绝对得,毕竟C是基础,C++是发展得来。


Software科技言


C语言,认真学,可以学到精通。

C++语言,恐怕没多少人敢说自己精通。

至于领域,都行,无非就是开发效率和代价。

历史上,没有C++的时代,汇编语言偏底层,C语言偏应用。

现在,汇编语言偏硬件驱动层,C语言偏底层,C++偏应用层

再说到现在的应用开发,各种语言,包括脚本语言,多了去了。


分享到:


相關文章: