关于C语言
C语言是高级编程语言,至于什么是高级编程语言,这里不赘述,自己去温习。但是最初C语言是为了开发uinx系统而被创造出来的,所以UNIX操作系统以及C编译器都是由C语言开发出来的。C语言成为比较广泛的开发语言,主要有以下优点,第一点是容易学习,我觉得这一点其实是相比较编译语言而言的,因为我学的时候被指针和链表搞的半死,并不怎么认同,相比python、php,还是难了点,但是这门语言对于学习计算机组成原理和操作系统还是帮助很大的,因为没有封装那么多东西。第二点是支持多平台编译并且效率高,这点是很重要的,想一想为什么用它来开发操作系统就知道了。我现在接触的好多东西都是用C写的,只是我们生存在上层,看不到底层的一些东西而已。MySQL跟UNIX系统一样都是用C编写的,所以如果你想熟练的掌握并且了解MySQL具体的存储机制,建议你好好学习C语言。
C和C++
大一的时候这两门课程是一起上的,但是真的是C和C++傻傻分不清楚,以为,C++就是C语言的升阶版。其实并不仅仅是这样,这样也对,但是这门说很不负责任。知乎上有人探讨过说C和C++哪个更适合初学者,百家争鸣,各执一词,但是不可置否的是,C语言更基础,也更好学一点。C语言是面向过程的结构化编程,通俗的讲,就是以程序的执行过程为核心,按顺序,先做什么,后做什么,最后做什么,这样的好处在于便于我们的理解,因为最初学习的时候就是这样一个过程。而C++是面向对象的编程,偏向于把整个事情分成一个一个部分,然后每个部分对应的包含典型的一些特点,比如汽车行驶这一个过程,将汽车抽象成为一个对象,内部有汽车的一些属性值,比如名字,类型,颜色之类的,然后根据需求,定制一些方法,我们要让汽车行驶,就是通过调用方法来改变汽车的一些属性值而已。C++的特性太多,其实对初学者并不是很友好,如果没有实践或者项目经历很难真正的体会其中的奥妙,但是C就不一样了,相比C++更精简一些,但是又能很好的成为学习C++的敲门砖。感觉STL封装的一些list、stack、mapping之类的好用但是不够清楚,通过C语言编写,走一遍流程,体会会更深刻一点。
GCC(GNU Compiler Collection)
这是用来编译C语言的编译器,也常被认为是跨平台编译器的事实标准,编译就是为了把高级语言编程计算机可以识别的2进制语言,想具体了解,可以去了解下编译器的工作过程。