C 语言是什么?
C 语言是由 Dennis Ritchie(丹尼斯·里奇)和 Ken Thompson(肯·汤普逊)于 1972 年开发的。经过 50 年左右的沉淀, C 语言已经是一门非常成熟的语言了。

虽然后面出现了很多语言,比如 Java、Python、JavaScript、Go 等。但 C 语言一直是一门主流的编程语言。在最新的 TIOBE 语言排行榜上,C 语言依然是第三受欢迎的语言,并且长期占据前三。要知道全世界编程语言有 500 多种,长期占据前三是非常厉害的。

提示: TIOBE 是编程业界权威的编程语言排行榜,它是编程语言流行趋势的一个指标。该榜单排名基于互联网有经验的程序员、课程和第三方厂商的数量。
C 语言能干什么?
C 语言的功能极其强大,并且应用也非常广泛。因为它是一门偏向于底层的语言,所以经常是用来干一些非常 “强大” 的事情,主要包括以下方面。
- 开发操作系统,比如 Linux、Windows。
- 开发 Web 服务器,比如 Nginx。
- 开发数据库,比如 Redis、SQLite。
- 开发其他高级语言,比如 Python、Ruby 等。
- 嵌入式开发。
- 开发各种软件。
细心的小伙伴会发现,C 语言还可以用于开发其他编程语言。比如当下最流行的 Python 就是使用 C 语言开发的。

C 语言有什么特点?
C 语言是一门面向过程的语言,同时具有高级语言和汇编语言的优点。由于 C 语言是一门非常基础的语言,所以它也是大多数高校首选学习的编程语言之一。
对于 C 语言来说,它具有以下几个重要特点。
- 简单易学:C 语言语法比较简单,有非常多的内置函数和数据类型,开发较为方便。
- 执行效率高:C 语言可以直接操作硬件,并且对内存进行管理。
- 移植性强:C 语言具有良好的可移植性,可以移植到不同的平台(包括 Windows、Linux、MacOS 等)。
- 应用广泛:C 语言可以用于编写各类应用程序,包括操作系统、嵌入式系统、网络编程、游戏开发等。
如果小伙伴们想要学习编程,C 语言无疑是一个不错的选择。实际上当你把 C 语言学好了,再去学另外一门编程语言,就变得非常简单了。因为两门编程语言之间,是有很多相同之处的。

C 语言示例
下面我们来看一个简单的例子,先给小伙伴们介绍一下编写 C 语言代码的一些规则,以便更好地学习后面的知识。
示例:一个简单的 C 例子
#include <stdio.h>
int main(void)
{
int a = 1;
int b = 2;
int sum = a + b;
printf("%d", sum);
return 0;
}运行结果如下。
3分析:
上面整一个例子就叫做一个 C 程序。一般来说,一个 C 程序会包含以下 2 个方面的内容:
- 头文件,也就是 #include <stdio.h>。
- 主函数,也就是 int main(void){…}。
#include <stdio.h> 一般是第一行代码,只有引入了这个头文件,才能在主函数 main() 中使用 printf() 和 scanf() 这样的输入输出函数。其中, “stdio.h” 是一个文件来的,这个文件的后缀名是 “.h”。
main() 是一个主函数,大多数情况下,我们都是在 main() 函数 里面来编写 C 语言的代码。
注意: <stdio.h> 不要错写成 <studio.h>,很多初学者都会犯这样的错误。其实 stdio 就是 “standard I/O(标准输入输出)” 的缩写,而不是 “studio” 的缩写。总而言之,编写代码是一件非常严谨的事情,小伙伴们一定要细心认真才能走得更远。
在后面的章节中,我们都是按照下面的格式来编写代码就可以了。至于这个格式为什么是这样,学到后面就非常清楚了,小伙伴们也不要太着急。
#include <stdio.h>
int main(void)
{
// 这里编写你的代码
return 0;
}C 语言手册
除了 C 教程之外,我们还为小伙伴提供 C 语言相关的手册,包括:
常见问题
1. 想要学习 C 语言,需要什么基础吗?
作为一门最基础的编程语言,学习 C 语言是不需要任何编程基础的。实际上,大多数高校都是使用 C 语言作为首选入门的编程语言。不过想要把 C 语言学好还是有一定难度的,所以希望小伙伴们能够踏实认真对待。
2. 学完本教程,能达到什么程度的水平呢?
本教程旨在让你快速上手 C 语言,所以会尽可能地把每一个知识点都讲清楚。如果能够把本教程认真学完,那你已经打下了坚实的基础,也达到初级开发水平了。
但是 C 语言之路远不止于此,如果想要成为一名有实力的开发工程师,接下来小伙伴们可以学习一下 C++、数据结构、常用算法等更多知识才行。
3. 对于编程语言的学习方法,有什么建议吗?
很多人在接触新技术的时候,喜欢在第一遍的学习中就把每一个细节都弄清楚,事实上这是效率最低的学习方法。在第一遍学习时,如果有些东西实在没办法理解,那就直接跳过,等到学到后面或者看第二遍的时候,自然而然就懂了。
