给C语言贴3个标签
为了让初学者更加精准地理解C语言,这里我们不妨给C语言贴几个标签。
第一,C语言比较简单,它的语法特性并不丰富,不支持面向对象,不支持泛型编程,不支持函数编程,而 Java、Python、C#、JavaScript 等高级语言,至少支持其中的两种。
语法特性多了,开发起来就比较方便,维护大型项目也更加得心应手。
第二,C语言语法严格,编写C语言代码需要非常小心,稍微不注意就会出错,比如指针。而 Python、JavaScript、PHP 等高级语言,代码书写非常灵活,基本不太关注细枝末节,死扣那些和项目功能无关的边边角角。
语法要求严格的话,就会耗费过多精力,写起代码来效率就低。
第三,C语言不支持垃圾内存回收,需要自己管理内存,实在是太麻烦了,一不小心就会出现内存错误,比如内存泄露(Memory leak)、段错误(Segmentation fault)等。
虽然有一些工具可以帮助检测类似的问题,比如 Valgrind、ASan 等,但是这些工具使用起来也非常麻烦,还需要了解很多底层知识,初学者或者半吊子程序员是玩不了的。更要命的是,工具也不是万能的,总有一些不常见的内存问题是无法检测的。
内存问题,是 C/C++ 程序员最头疼的问题。
第四,使用C语言开发对程序员的要求很高,程序员需要对计算机底层的执行细节有更深入的了解,比如内存布局、编译原理等,所以基础不扎实的程序员压根就玩不了C语言。
总起来说,C语言在使用的灵活性和强大型方便,比不过 Java、Python、C#、JavaScript、PHP 等语言,所以它不高级;但是,C语言又比汇编好用太多了,简直不是一个时代的产物,所以它也不低级。
既不高级也不低级,那就算是中级语言吧。
从应用范围上来说,这些编程语言大致可以分为两种:
专用型编程语言举例:
通用型编程语言举例:
C语言语法特性并不丰富,不支持那些高级的玩法,没有乱七八糟的语法糖,什么东西都得由你自己实现,所以C语言生成的汇编代码比较简洁,比直接手写汇编代码也复杂不了多少。
因为简单,因为原始,所以运行效率高,而且是极高,比汇编也差不了多少,所以在很多场景下都可以代替汇编的工作。
C语言的运行效率,不是 Python、Java、JavaScript、C#、PHP 这些高级语言所能比肩的,它们之间甚至会存在数量级的差距。
C语言是一名合格的程序员必须掌握的编程语言,很少有不了解C语言的大佬。
C语言除了能让你学习编程相关的概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在内存中是一种怎样的状态,操作系统和用户程序之间有着怎样的“爱恨情仇”,这些底层知识决定了你的发展高度,也决定了你的职业生涯。
如果你希望成为出类拔萃的人才,而不仅仅是码农,这么这些知识就是不可逾越的。也只有学习C语言,才能更好地了解它们。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
标签1:中级语言
很多教材都把C语言定位成高级语言,但是从现在的编程环境来看,这种说不再准确了。C语言最好的定位应该是中级语言。第一,C语言比较简单,它的语法特性并不丰富,不支持面向对象,不支持泛型编程,不支持函数编程,而 Java、Python、C#、JavaScript 等高级语言,至少支持其中的两种。
语法特性多了,开发起来就比较方便,维护大型项目也更加得心应手。
第二,C语言语法严格,编写C语言代码需要非常小心,稍微不注意就会出错,比如指针。而 Python、JavaScript、PHP 等高级语言,代码书写非常灵活,基本不太关注细枝末节,死扣那些和项目功能无关的边边角角。
语法要求严格的话,就会耗费过多精力,写起代码来效率就低。
第三,C语言不支持垃圾内存回收,需要自己管理内存,实在是太麻烦了,一不小心就会出现内存错误,比如内存泄露(Memory leak)、段错误(Segmentation fault)等。
虽然有一些工具可以帮助检测类似的问题,比如 Valgrind、ASan 等,但是这些工具使用起来也非常麻烦,还需要了解很多底层知识,初学者或者半吊子程序员是玩不了的。更要命的是,工具也不是万能的,总有一些不常见的内存问题是无法检测的。
内存问题,是 C/C++ 程序员最头疼的问题。
第四,使用C语言开发对程序员的要求很高,程序员需要对计算机底层的执行细节有更深入的了解,比如内存布局、编译原理等,所以基础不扎实的程序员压根就玩不了C语言。
总起来说,C语言在使用的灵活性和强大型方便,比不过 Java、Python、C#、JavaScript、PHP 等语言,所以它不高级;但是,C语言又比汇编好用太多了,简直不是一个时代的产物,所以它也不低级。
既不高级也不低级,那就算是中级语言吧。
标签2:通用语言
根据世界编程语言排行榜(TIOBE)的统计,能叫得上名字来的编程语言大概有 300 多种,其中常用的有 50 种,也就是榜单里面的前 50 名。从应用范围上来说,这些编程语言大致可以分为两种:
- 一种是专用型语言,也就是针对某个特定领域而设计出来的语言;
- 另一种是通用型语言,它们可以开发多种类型的应用程序,而不是局限在某个特定的领域。
专用型编程语言举例:
编程语言 | 说明 |
---|---|
PHP | 专门用来开发网站后台。 |
JavaScript | 最初只能运行在浏览器里面,用于开发网站前端,实现一些网页特效;后来有“好事的”程序员把它从浏览器里面提取出来,拿到操作系统上直接运行,这个时候 JavaScript 又变成了一种通用型的语言,可以干很多其它事情了,比如开发网站后来、GUI 程序、APP 或者一些小工具。 |
SQL | 专门用于操作数据库的语言,可以实现数据的增删改查。 |
MATLAB | 主要用于数值计算、科学计算和数据可视化等领域。它提供了许多工具箱,可以进行信号处理、图像处理、控制系统设计等任务。 |
R语言 | 用于统计分析和数据科学,是一种开源的语言和环境,提供了许多数据分析和可视化的函数和工具。 |
VHDL/Verilog | 用于数字电路设计,是一种硬件描述语言。它们允许开发人员描述数字电路的行为和结构,并用于电路仿真和综合等任务。 |
通用型编程语言举例:
编程语言 | 说明 |
---|---|
Python | 能做的事情很多,可以用于科学计算、数据分析、Web开发、网络爬虫、人工智能、自动化运维等领域。 |
Java | 可以用于网站开发、Android APP开发、GUI 程序开发、云计算等领域。 |
Objective-C Swift |
开发苹果系统上的应用程序,具体包括 iOS、macOS、watchOS、iPadOS 等。 |
Go语言 | Google 公司开发,可以用于网络编程、云计算、分布式系统开发、Web后台开发、游戏后台开发、GUI程序开发等领域。 |
C/C++ | 用于底层开发、单片机/嵌入式开发、游戏开发、GUI 程序开发等。 |
标签3:高效语言
C语言先被“翻译”成汇编代码,然后再由汇编器编译成机器代码,也就是 0 和 1 组成的那一堆东西。C语言语法特性并不丰富,不支持那些高级的玩法,没有乱七八糟的语法糖,什么东西都得由你自己实现,所以C语言生成的汇编代码比较简洁,比直接手写汇编代码也复杂不了多少。
因为简单,因为原始,所以运行效率高,而且是极高,比汇编也差不了多少,所以在很多场景下都可以代替汇编的工作。
C语言的运行效率,不是 Python、Java、JavaScript、C#、PHP 这些高级语言所能比肩的,它们之间甚至会存在数量级的差距。
总结
C语言是一种高效的、通用的中级语言。C语言是一名合格的程序员必须掌握的编程语言,很少有不了解C语言的大佬。
C语言除了能让你学习编程相关的概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在内存中是一种怎样的状态,操作系统和用户程序之间有着怎样的“爱恨情仇”,这些底层知识决定了你的发展高度,也决定了你的职业生涯。
如果你希望成为出类拔萃的人才,而不仅仅是码农,这么这些知识就是不可逾越的。也只有学习C语言,才能更好地了解它们。
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。