C语言是什么,花十分钟彻底搞清楚!

对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。

C语言发布于 1972 年,今年是 2023 年,它已经 50 多岁了,是一个不折不扣的“大叔”或者“大爷”。

但是呢,现在的 C 语言依然非常流行,每一个科班出身的程序员都必学C语言。在 2023 年 10 月份发布的世界编程语言排行榜中,C 语言拿了一个第二名的好成绩,占据了 12.08% 的市场份额。

C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如:

  • 计算机的各个部件是如何交互的;
  • 程序在内存中是一种怎样的状态;
  • 一个程序究竟是如何执行的;
  • 操作系统和应用程序之间有着怎样的爱恨情仇。

这些底层知识决定了你的发展高度,也决定了你的职业生涯。如果你希望成为出类拔萃的人才,而不仅仅是码农,这么这些知识就是不可逾越的。也只有学习C语言,才能更好地了解它们。

有了足够的 C 语言基础,以后学习其他语言,会触类旁通,很快上手,7 天了解一门新语言不是神话。

1、C语言难学吗?

和 Java、C++、Python、C#、JavaScript 等更加高级和复杂编程语言相比,C语言涉及到的编程概念少,附带的标准库小,所以整体比较简洁,容易学习,非常适合初学者入门。

编程语言的发展大概经历了以下几个阶段:

汇编语言 --> 面向过程编程 --> 面向对象编程和泛型编程

汇编语言是低级语言,诞生于编程语言的拓荒年代,主要是面向机器,而不是面向开发者,所以抽象程度不高。汇编非常底层,直接和计算机硬件打交道,开发起来异常繁琐,令人吐血。

C语言是面向过程的编程语言,已经脱离了计算机硬件,写出来的代码非常容易看懂,更加接近“人类语言”,而不是“机器语言”,所以我们把C语言定义为高级语言。

Java、C++、Python、C#、JavaScript 是比C语言还高级的语言,它们在面向过程的基础上又增加了很多概念,包括面向对象编程、泛型编程、函数式编程等。

初学者往往都不了解硬件,从汇编起步是一个艰难的过程,所以不推荐这样做。而 Java、C++、Python、C#、JavaScript 又太高级太复杂,涉及到诸多概念和思想,学习起来有点重,可能会消化不了,所以我推荐从C语言开始学习编程。

想快速入门 C 语言的小伙伴,这里我给大家推荐一套之前看过的教程,语言非常通俗移动,没有那种“学院派”的味道,知识点全面、详细,非常适合 0 基础、想快速入门编程的人。

C语言基础教程icon-default.png?t=N7T8https://xiexuewu.github.io/c/

2、C语言能干什么?

C语言是一门通用性的语言,并没有针对某个领域进行优化,就目前而言,它可以进行以下几种类型的开发:

  • 1) 单片机/嵌入式开发:这是目前使用C语言最广泛的一个领域,尤其是单片机开发,基本被C语言霸占了。
  • 2) 桌面软件开发:也叫 GUI 开发或者 PC 软件开发。在实际应用中,C语言通常用来开发某些关键模块或者效率模块,而不是开发一个完整的软件。这些模块一般对性能有着很高的要求,同时也关注资源消耗情况,除了C语言也没有其它更好的选择了。
  • 3) 系统组件开发:基础组件、核心算法、硬件驱动、通信协议的实现,都离不开C语言。
  • 4) 开发操作系统:这是C语言的初衷,它就是为开发操作系统而生的,UNIX、Linux、Windows 的内核就大量使用C语言。
  • 5) 开发其它编程语言:有些编程语言的编译器(解释器)和标准库就使用C语言开发,比如 Python、PHP、Rust、Perl。
  • 6) 信号处理:C语言在电气工程领域也有很多用途,它可以使用信号处理算法来管理微处理器、微控制器等集成电路。
  • 7) 音视频处理:C语言的速度非常快,能够快速地对音频和视频数据进行处理。C语言提供了丰富的底层库和工具,如 FFmpeg、OpenCV 等,这些库和工具可以方便地对音频和视频数据进行编码、解码、剪辑、处理和转换等操作。
  • 8) 数据库开发:使用C语言开发的数据库有:MySQL、SQLite、PostgreSQL、Oracle Database、Microsoft SQL Server。

总结一下,C语言的开发场景看起来很多,但是如果总结一下的话,无非就是:底层/系统开发 +关键组件/模块的开发 + 贴近硬件的开发,这些开发场景非常关注运行效率,或者响应时间,或者硬件资源。

这里,我只是给大家大概介绍了几个开发方向,如果想更详细地了解每个方向,可以去看我之前阅读过的一篇文章,所有灵感就来源于它。

3、C语言能找什么工作?

虽然C语言有很多开发方向,但很多初学者学完C语言以后仍然非常迷茫,只能编写没有界面的控制台程序。

这是因为,C语言仅仅是一个工具,它的标准库也很简单,只提供了最基本的功能,如果希望开发出实用的程序,往往还需要学习其他方面的知识。例如:

  1. 开发硬件驱动要学习数字电路,了解 Windows 或 Linux 内核,阅读硬件厂商的接口说明书;
  2. 从事嵌入式开发要学习数字电路、模拟电路、ARM、Linux、Qt等;
  3. 开发PC软件要学习Windows编程,了解 GTK。

直白地说,只会C语言基本上是找不到工作的,大家必须选定一个方向继续学习其他知识。C语言不过是冰山一角,程序员要学习的东西还很多。

另外,学习 C语言并不一定要从事与C语言有关的开发工作。C语言是一门简单、底层、较早的编程语言,后来的很多语言在语法上都和 C语言类似,称为“类C语言”,例如 Java、C++、C#、PHP、JavaScript 等,学完C语言再学这些语言都很容易上手。

并且,C语言能够让你更加深刻的认识内存和编译原理,了解程序的每一个细节,夯实基本功,站得“低”才能望的远,所以优秀的程序员都会学习C语言。

4、C语言能挣多少钱?

关于C语言能挣多少钱,这几年单片机/嵌入式比较好找工作,有很多程序员都挤进这个赛道。其实也并不一定是单片机/嵌入式扩招了,而是它们一直都比较稳定,都不难找工作,在互联网遭遇滑铁卢的当下,它们显得鹤立鸡群而已。

至于具体工资,则受到多个方面的影响,比如学历、公司、岗位、地域、机遇等,年包(年薪)从 10W 以下到 40W 以上都有。

不得不说,还是互联网大厂给的工资高,2023 年秋招爆出的 offer,C/C++ 开发能给到 40W~50W 年包,和 Java、Golang 差不多,比 JavaScript 高点,比算法低点。还有华为,这几年围绕鸿蒙开发给出的工资也不错,和互联网大厂差不多。

至于贴近硬件的嵌入式,就算比较顶流的工资,也比互联网公司低 20%~30%,大概在 30W 左右。当然,不排除个别公司给得多,比如 TP-LINK、理想汽车、大疆等,也能给到 40W 年包。

以上工资,不但需要把相关的技术栈学得扎实,还需要一个不错的学历,最起码得是 985/211 本科,或者是双非硕士(注意这是起步学历);二本三本专科的小伙伴,还是放弃挣扎吧。但是不管如何,把技术栈学得扎实了,即使是专科生,也有机会拿到 20W 年包。技术栈不扎实,学历又不好的小伙伴,那就不好说了,四五千都有可能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据结构和算法教程(C语言版)

创作不易,多多支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值