学了C++这么久,一直想作下总结,可是不知道从哪里下手,当然现在也是。我会尽己所能,将自己理解的部分用文字诉说出来。
计算机的智商其实不高,它只能接受二进制的指令,即0和1的排列组合。计算机遵循冯诺依曼结构:输入设备,存储器,输出设备,运算器和控制器。输入设备有键盘,鼠标等。存储器有内存条和硬盘等。输出设备有显示屏,打印机等。运算器有算术逻辑单元(ALU)、累加器、状态寄存器和通用寄存器等。而控制器则包括CPU等。可以说,这五大部件是如今计算机的基本架构。简单来说,计算机就是通过一系列计算,将你输入的数据变成你想要的数据。当然,这些数据可以是简单的数字,也可以是抽象的“事物”。
我想,如果让你用纯粹的二进制指令去编写代码,教计算机做事,你一定会疯掉的。当然,庆幸的是,爱偷懒的人类想到了办法,那就是封装计算机的内部细节,利用高级语言去编写程序。如今就有C++,JAVA,Python,Go等语言。这些语言分为编译型语言和解释型语言。而C++正是编译型语言的一种。
C++程序需要经过预处理,编译,汇编和链接这四个阶段才能从C++高级语言变为汇编语言进而变为二进制代码,被计算机认识从而执行相关指令。计算机一次只能执行简单的指令,如加减乘除,地址的跳转等等。这点可以在汇编指令中看出来。
需要的注意的是,C++是一门语言,一般来说,语言是人与人交流的桥梁。而像C++这类语言则是人与计算机交流的桥梁。同时,C++又是一门工具。什么是工具?打个比方,假设我们要建一栋房子,我们需要水泥,钢筋,砖头等工具,同时我们也需要施工队帮我们建房子,这里的工具对应C++这类语言,而我们就是施工队。当然,要掌握使用工具的方法很容易,但问题的关键,不在于使用工具本身,在于如何用这些工具,去建造一座让我们满意的房子。换句话说,就是如何设计这栋房子。这就是设计模式了,同时还要注意未来的“变化”。
接下来,我会介绍C++中的知识点,争取让大家明白如何使用这样复杂的工具。