文章目录
什么是内存
0和1这两个简单的数字能做什么?在其它学科中也许什么都做不了,但是在计算机科学中这就是全部。精彩纷呈的计算机世界正是构筑在这样两个简单数字之上。
内存本身其实非常简单,内存的作用就是用来装数字0和数字1的,如图所示,图中的一个盒子就是内存的一个基本单元,装的不是0就是装的1。
内存由一大堆的“盒子”组成,每个盒子中要么是0要么是1,其中8个盒子被称之为一个“字节”,每8个盒子也就是一个字节都有一个编号,这些编号就是简单的从0开始依次累加的,这个编号就被称之为“内存地址”。如图所示,你可以把内存理解为下面这张图,其中左边的数字是内存地址,每一排是一个字节,图中展示的就是一个8字节大小的内存。
而对于我们平时使用的比如2G、4G甚至8G大小的内存来说,只不过就是“盒子”多一点能装的01多一点而已,本质上和我们在这里展示的8字节大小的内存没有任何区别。
在后面的章节中我将用右图来表示内存,但是你的大脑里一定要有左图这样一个概念。当计算机在执行我们的程序时,无论是我们的机器指令还是机器指令操作的数据,都需要存放在这些小盒子中(内存)。
以上就是从硬件角度来看内存,那么从编程语言上来看,程序员应该如何理解内存呢?
C/C++内存模型
对于C/C++程序员来说,常用的int,char等变量都被装在盒子中,char值只需要一排盒子就能装下(8bit),一个int值一般需要四排盒子才能装得下。连续几排装有同样类型变量的