代码改变世界

《程序是怎样跑起来的》第四章

2019-03-22 20:01  薛肖肖  阅读(110)  评论(0编辑  收藏  举报

我特别喜欢这章的标题:熟练地使用有棱有角的内存,从物理角度来说它是有棱有角的IC集成电路,从逻辑来看它是有棱有角的“楼房”。

作者首先介绍物理角度的内存,从内部外部详细的介绍,还通过一个简单的例子来进行说明;这例子让读者可以清楚明白其步骤,这就很有意思了。

接下来就介绍了“楼房”,楼层外观都是相似的,但是里边装修风格可能会大相径庭;装修风格就是程序员绕不过去的数据类型。

指针是变量;不是值,而是地址。指针的数据类型表示一次可以读写的长度,也就一个单元中的所有房间朝阳方向都是一样的,指针的数据类型储存的数据都是那么大的内存。

数组是索引,是方便寻找数据所在的位置,从而访问数据。数组是相同的数据类型,数组的数据类型也表示一次能够读写的内存(这就和指针有所相似了),多个户型相同的房间组成一个单元或是一整个小区。

栈、队列、环形缓冲区,都是数据的读写方式。栈,先进后出;队列,先进先出;环形缓冲区,数组的末尾和开头链接起来(队列一般用其来实现)。都是为了更好的访问地址、使用数据。作者用了“楼房”图来进行解释,很好理解。

最后就是链表和二叉查树。链表:由此数据值及下一数据地址组成,这就使值与值之间相互连接;可以在此值中(通过地址或索引)对下一个值进行操作,使删除和添加都更加方便。二叉查树:树状查找方式。就好比我们自己,爸爸方的亲戚在爸爸边,妈妈变的亲戚在妈妈边。书上用的是比较数字和50间的大小关系,更加形象。

其实我们要处理数据必须要找到数据,这一章就是教会我们用一些方法去查找数据和储存数据,这也是我们要熟练掌握的原因。