自学C语言的最恐怖的地方是什么?

发布时间:
2025-02-23 02:30
阅读量:
0

最恐怖的地方就是,明明c语言很简单,甚至算得上最简单的编程语言之一,但是大家传着传着,就普遍认为c语言很难了。

c语言哪里恐怖了?是语法恐怖,还是标准库恐怖?都给你精简到不能再精简,直白到不能再直白了好吗?不得不说,c语言的设计者真的是匠心独具,对于一门编程语言来说,表现力、确定性、简单性,几乎是不可能三角,但是c语言找到了一种非常好的平衡。

  • c++、rust表现力强,确定性强,但是非常复杂难学。
  • 某些领域特定语言(dsl),既简单又确定,但是表现力不足。
  • java和js表现力较强,也相对比较简单(其实java也不简单),但是确定性就比较差,很多行为不是由开发者精确控制的。

反观c语言:c语言的表现力可能算不上太强,但是c语言+宏,那就非常强了;c语言确定性非常强,一个熟练的开发者甚至能肉眼看到代码背后的汇编;c语言非常简单,几乎是所有编程语言里面教材最薄的语言。

当然,我们知道,面对不可能三角,找平衡是相对的,一定有偏重,有偏重就有代价,否则你完全中庸,也就没有特色了。

c语言付出的代价是什么呢?我觉得有两点,也是这两点导致某些人觉得c语言难——

第一,c语言假定用户了解计算机是如何工作的,所以你才会看到指针这种东西。Python就从来不假定用户懂电脑。

第二,c语言不帮助用户管理代码复杂性,也几乎不帮助用户降低代码复杂性。

这两条导致用户想要顺利的使用c语言编程,一方面要懂电脑原理,另一方面要足够了解自己到底在写一个什么样的程序。很多开发者,至少在写代码的早期,是达不到这两条要求的。

但这本质上,不是编程语言的难度,这是编程的难度。

END