首页 > 编程笔记 > C语言笔记

一文带你彻底了解C语言!

学习 C语言之前,首先搞清楚语言是什么。

语言是人类重要的交际工具,也是人类进行沟通的主要方式。因为我们生在中国,所以大多数人从小就讲汉语,但由于地域不同,也产生了不同的地方方言。

人与人交流用人类语言,人要与计算机交互就需要用计算机语言。下面介绍计算机语言的发展。

计算机语言的发展

1) 机器语言

计算机只“认”指令。在很多年前就有了机器语言,它以一种指令集体系结构存在,数据能够被计算机 CPU 直接解读,不需要进行任何翻译。

计算机使用的是由二进制数 0 和 1 组成的一串指令,如下图所示。


图 1 机器指令

2) 汇编语言

机器语言的存在正好满足了计算机的需求,不过编程人员直接使用机器语言通常会很麻烦,于是汇编语言应运而生。

用英文字母或符号串来替代机器语言的二进制码,就把不易理解和使用的机器语言变成了汇编语言。因此,使用汇编语言编写的程序代码比使用机器语言编写的更易于阅读和理解。

下图所示是汇编指令。

3) 高级语言

汇编语言也有弊端,它的助记符多且难记,而且汇编语言依赖于硬件系统,于是人们又发明了高级语言。

高级语言的语法和格式类似于英文的语法,避免了对硬件的直接操作。高级语言并不是某一种具体的语言,其包括流行的 C语言、Java、C++ 等,如下图所示。


图 3 高级语言

C语言发展史

1970 年,UNIX 的研发者丹尼斯•里奇(Dennis Ritchie,图 4 左)和肯尼思•汤普森(Ken-neth Thompson,图4右)研制出 BCPL(简称 B语言),而 C语言是在 B语言的基础上发展和完善而来的。


图 4 丹尼斯•里奇和肯尼思•汤普森

20 世纪 70 年代初期,丹尼斯•里奇第一次把 B语言改为 C语言。至此,C语言就诞生了。

C语言完整的发展历程如下图所示。


图 5 C语言完整的发展历程

C语言是一种面向过程的语言,同时具有高级语言和汇编语言的优点。对于大多数程序员来说,C语言是学习编程的首选语言。C语言使用起来简单,容易上手。所以,C语言一直备受初学者的青睐,曾在编程语言排行榜排名第二。

C语言的特点

C语言是一种通用的程序设计语言,主要用来进行系统程序设计,其具有如下特点。

1) 高效性

从 C语言的发展历史可以看出,它继承了低级语言的优点,能产生高效的代码,并且代码具有较好的可读性和可编写性。一般情况下,C语言生成的目标代码的运行效率只比汇编程序的低 10%~20%。

2) 灵活性

C语言中的语法“不拘一格”,可在原有语法基础上进行创造、复合,从而给程序员更多的想象和发挥空间。

3) 功能丰富

除了本身所具有的类型,C语言还可以通过丰富的运算符和自定义的结构类型来表示几乎任何复杂的数据类型,实现所需要的功能。

4) 表达力强

C语言的主要特点体现在它的语法形式与人们所使用的日常语言的语法形式相似,书写形式自由,结构规范,并且只需简单的控制语句即可轻松控制程序流程,满足烦琐的程序要求。

5) 可移植性好

C语言具有良好的可移植性,这使得 C语言程序在不同的操作系统下,只需要简单的修改或者不修改即可进行跨平台的程序开发操作。

正是由于 C语言拥有上述特点,因此它在程序员群体中备受青睐。

C语言能做什么

C语言诞生于 20 世纪 70 年代,是“标准的70后”,为出现较早的编程语言。它可以做到“一次编写,处处编译”,而且在很多平台上都有强大的编译器支持,也有强大的集成开发环境支持,例如 Windows 平台上有微软公司的 Visual Studio,iOS 平台上有 Xcode。

C语言应用广泛, 接下来简单介绍一些应用 C语言的领域。

1) 单片机系统领域

首先介绍 C语言应用于单片机系统领域的情况。提到单片机,电子/电气相关专业的同学可能知道,单片机开发应用的语言主要有两种:一种是汇编语言,另一种是 C语言。

汇编语言程序比 C语言程序更容易控制单片机,但是 C语言的可移植性比较好。就算不太了解硬件的内部结构,编译器也能为这个系统设计合理地分配内存单元,设计出简单的单片机程序。

将 C语言应用于单片机系统领域时,只要实现好代码优化功能,用 C语言开发单片机系统就会提高工作效率,所以目前 C语言是开发单片机系统的主流语言。单片机和 C语言结合能够控制许多简单的系统,例如下图所示的控制台灯。

图 6 单片机和C语言结合实现控制系统

2) 应用软件领域

Linux 操作系统大部分就是用 C语言编写的(见下图),当然 Linux 操作系统中的应用软件大多也是用 C语言编写的,且这些应用软件的安全性非常高。


图 7 Linux操作系统

3) 嵌入式系统领域

不仅如此,C语言还会应用于嵌入式系统领域,嵌入式系统涉及生活中的方方面面,例如汽车、家电、工业机器人等。

如下图所示,我们熟悉的智能家居控制系统就是能用 C语言来实现的。


图 8 嵌入式系统

4) 游戏领域

其实,C语言还应用到了游戏领域,说不定你玩的游戏就是由 C语言编写的呢。例如,无论是简单的小游戏(例如五子棋),还是复杂的大型游戏(例如《Quake》,即《雷神之锤》),都是可以用 C语言编写的。

C语言具有很强的绘画能力、数据处理能力和可移植性,所以可以用 C语言编写系统软件、制作动画、绘制二维图形和三维图形等。不仅如此,C语言的数值计算能力也很强,所以它也能用于进行数据分析。

可见,C语言的应用十分广泛,涉及我们生活的各个领域、各个方面。

声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。