c语言如何进阶?需不需要学操作系统和编译原理

学了一段时间的c语言,基本知识都掌握了,想深入学习一下c语言,不知道需不需要先学习一下操作系统方面的知识或者编译原理,请高手指点一下

C语言是一种系统编程语言,有人称它叫做“高级语言中的低级语言”,由于它接近硬件,语法相对简单,并且自身抽象程度很差,不适合编写应用程序,而很适合编写系统软件,比如微控制器、嵌入式系统、驱动程序等等。

这恰好是操作系统和编译原理的学习中最适合的语言。C语言接近硬件,接近操作系统,天然地,和操作系统两者密不可分,学好操作系统有利于你更好地理解C语言。

初学编译原理,你当然希望有一种简单的语言作为你学习的目标,C语言就很合适,它的代码生成没有太复杂的东西,而且可以参考的C语言编译器实现版本又有很多。C语言本身也被用来写编译器,这些都使得它和编译原理密不可分。

最好在这两者之外,再学习下计算机组成原理,对于计算机硬件有个大概了解。

可以直接学习Linux编程,最好找本书,操作系统方面的知识在你写程序的过程中会接触到一些,现在不用专门学习,编译原理也是

操作系统肯定要学,因为你的程序都跑在操作系统上,Linux,Windows都是比较优秀的OS,
编译原理可以加深你对程序实现的理解

学点计算机组成原理,知道什么字节对其,调度多线程等等的知识是挺好的

同学,推荐学习linux编程

对于初学者不建议学习这么多理论,建议选一个编译工具,搭建环境进行实践,让学习到的理论与实践印证下,再进行其他方面的拓展。

学操作系统和编译原理是肯定的了。

学习C语言是有一些技巧的,比如发明自己的术语。比如看这么一条C语言语句:

((pArray + index1) + index2)

它做了两次指针移动和两次解引用,也就是这个语句包含了四个操作,这也是许多小伙伴看到这里会犯晕的原因,不太理解每一次移动和解引用的含义。关于C语言指针,我后面会专门再写一个专栏,用我自己总结的"两己三他"的概念来剖析指针,有兴趣的小伙伴可以关注我啦!
当初我在学习这条语句时也晕过,后来自己理解透了之后就自己发明了“行指针”和“列指针”的概念,在做题以及编码时用这两个概念就比较轻松了。
我的这个回答希望能告诉你,你也可以把自己对C语言某个知识点的理解总结为一个术语、一个概念,以此来帮助你做题、考试和编码。而且这个术语这个概念只有你自己能理解,别人是搞不懂的,也算是你的一个有力的竞争点吧。