请给我一个选择C语言的理由。
好的,我可以给你好几个~

设计特性

首先,C语言尽管已经五十多岁了,但不可否认的是,它仍然是当代冲在第一线的天王级的角色。
C语言的设计理念可以让用户轻松地完成自顶向下的规划、结构化编程和模块化设计

自顶向下设计是一种软件设计过程方法,是一种总到分的设计思路。

这时候可能有人就要说了,我的Java和C++也可以呀~(我不反驳,因为你说得对)

高效性

C语言相对来讲,更紧凑,而且运行速度很快。
究其原因,是因为C语言具有汇编语言才有的微调控制能力。

汇编语言是一种为特殊的中央处理单元设计的一系列内部指令,使用助记符表示。 简单理解,计算机只认识010101,但程序员如果用01给计算机写命令,那不得累死~ 所以就对一些特殊的01指令,取了英文字母组成的名字。 注意:不同的CPU系列使用不同的汇编语言。

如果实在好奇汇编语言什么样子,不慌,可以看看我这个笔记,用的应算是虽简单的一类汇编指令——51汇编指令:51汇编指令(实验)
C语言正是因为这种特性,可以根据具体情况微调程序以获得最大运行速度或最有效地使用内存。

可移植性

C属于可移植性语言,在一些系统中编写的C稍作修改,或者不修改就可以在其它系统上运行,就算改,也只需要更改主程序头文件的少许项就可以了。
但要注意的是,程序中针对特殊硬件设备或者操作系统特殊功能编写的部分,通常不可以移植。
举个简单的例子~
image.png
我开发了一款人脸识别的设备,但有一天它的摄像头突然坏了,这个时候我找来了另一个品牌的摄像头(通讯协议不一样),安装上去发现没法用!!!
这很正常,因为硬件设备不同,对应的底层设备也是不一样的。

路人甲:你说的不对,我的电脑鼠标和电脑显示器,就是不同品牌之间就可以来回的切换,都可以用,这你怎么解释??

问得好,之所以能用,是因为鼠标和显示器,根据接口的不同,分别所属于不同的通讯协议,比如鼠标USB类协议,而计算机对这些协议有着相同的兼容性。
这也是为什么行业有一个统一的协议标准如此的重要!!

强大而灵活

其他语言的编译器和解释器都是用C语言写的,最终都是由C语言生成最后的可执行程序。
但灵活有时候也是一种缺点,具体后面说。

面向程序员

程序员可以直接通过C访问硬件、操控内存里面的某一位(寄存器位)。
许多的任务用C来处理都非常的简洁(比如,转化数据的格式)。

缺点

C语言很灵活,也很自由。
但这种自由往往意味着需要承担更多的责任。
特别是,C语言使用指针,而涉及指针的编程往往错误难以察觉。
前面还提到过可以直接操控内存,这也是导致C语言系统中,出现各种内存溢出问题的原因。
C语言结构紧凑,结合了大量的运算符,所以,程序员们很容易就可以编写出让人极其费解的代码
大家可以搜搜IOCCC这个比赛,国际C语言混淆代码大赛,贼好玩~