虽然内存的实体是内存IC,不过从程序员的角度来看,也可以把它假想成每层都存储着数据的楼房,并不需要过多地关注内存IC的电源和控制信号等。因此,之后的讲解中我们也同样会使用楼房图(或者与楼房相似的图)。内存为1KB时,表示的是如图4-3所示的有1024层的楼房(这里地址的值是从上往下逐渐变大,不过也有与此相反的情况)。
不过,程序员眼里的内存模型中,还包含着物理内存中不存在的概念,那就是数据类型。
编程语言中的数据类型表示存储的是何种类型的数据。从内存来看,就是占用的内存大小(占有的楼层数)的意思。即使是物理上以1个字节为单位来逐一读写数据的内存,在程序中,通过指定其类型(变量的数据类型等),也能实现以特定字节数为单位来进行读写。
如代码清单4-1所示,这是一个往a、b、c这3个变量中写入数据123的C语言程序。这3个变量表示的是内存的特定区域。通过使用变量,即便不指定物理地址,也可以在程序中对内存进行读写。这是因为,在程序运行时,Windows等操作系统会自动决定变量的物理地址。
变量的数据类型不同,所占用的内存大小也不要一样。
1.在C语言中,int这一数据类型经常会用到。int也是CPU最容易处理的数据类型的长度。在32位的CPU中,int是32位的。在以前的16位的CPU中,int是16位的。
2.将多字节数据的低位字节存储在内存低位地址的方式称为低字节序,与此相反,把数据的高位字节存储在内存低位的方式称为高字节序。本章的示例图中使用的是奔腾等英特尔处理器所采用的低字节序方式。
标签:逻辑,变量,int,楼房,数据类型,内存,字节 From: https://www.cnblogs.com/2674308160-lucky/p/17052335.html