C语言是高级语言中的底层语言,它有下面几个特点:
1. C语言是一个静态弱类型语言,在使用变量时需要声明变量类型,但是类型间可以有隐式转换;
2. 不同的变量类型可以用结构体(struct)组合在一起,以此来声明新的数据类型;
3. C语言可以用 typedef 关键字来定义类型的别名,以此来达到变量类型的抽象;
4. C语言是一个有结构化程序设计、具有变量作用域以及递归功能的过程式语言;
5. C语言传递参数一般是以值传递,也可以传递指针;
6. 通过指针,C语言可以容易地对内存进行低级控制,然而这引入了非常大的编程复杂度;
7. 编译预处理让C语言的编译更具有弹性,比如跨平台。
C语言的这些特性,可以让程序员在微观层面写出非常精细和精确的编程操作,让程序员可以在底层和系统细节上非常自由、灵活和精准地控制代码。然而,在代码组织和功能编程上,C语言的上述特性,却不那么美妙了。
从某种角度上来说,C语言的伟大之处在于——使用C语言的程序员在高级语言的特性之上还能简单地做任何底层上的微观控制。这是C语言的强大和优雅之处。
也有人说,C语言是高级语言中的汇编语言。
不过,这只是在针对底层指令控制和过程式的编程方式。而对于更高阶更为抽象的编程模型来说,C语言这种基于过程和底层的初衷设计方式就会成为它的短板。
因为,在编程这个世界中,更多的编程工作是解决业务上的问题,而不是计算机的问题,所以,大家需要更为贴近业务更为抽象的语言。