指针占用内存大小
墨初 知识笔记 181阅读
内存和指针变量有什么区别?
答:内存 是由字节组成的,每个字节都有一个编号。 指针变量 主要是存放相同数据类型的 变量 的首地址。 这里的这个地址其实就是 内存 的某个字节的编号。 而这个编号的确定是与地址总线有关。 如果地址总线是32位,则它的寻址范围是0~2^32(0~4G)。 那么为一个字节的编址就会由32个0或者1组成。 例如第一个字节的编址是32个0,最后一 计算结构体 占用内存 ,sizeof, 指针 。 和操作系统位数有关 1.如果操作系统是64位,则占8个字节;如果操作系统是32位,则占4个字节。
在256mb的内存上面有一个指针占据了8bit=1b的大小吗?
答:答案是8位。 所以在256MB的内存上面有一个指针占据了8bit=1B的大小。 按照这个说法,在8位计算机上面,无论是什么类型,指针大小都应该大于等于1B才能不会出错。 那么推广,32位的机器,当然要开一个指针占用32bit=4B才能保存所有的地址都能记录。
一个指针地址值可对应内存中一个字节的空间吗?
答:也就是说一个指针地址值可对应内存中一个字节的空间。 寻址空间 :寻址空间一般指的是CPU对于内存寻址的能力。 CPU最大能查找多大范围的地址叫做寻址能力,CPU的寻址能力以字节为单位 (字节是最小可寻址单位),如32位寻址的CPU可以寻址2的32次方大小的地址也就是4G,这也是为什么32位寻址的CPU最大能搭配4G内存的原因,再多的话CPU就找不到了。 这里CPU的寻址位数是由地址总线的位数决定, 32位CPU的寻址位数不一定是32位,因为32位CPU中32的意义为字长。 有关寻址范围计算解释,对于32位寻址的CPU,其地址值为32位的二进制数,所以可以表示的最大地址为2的32次方 (即4G,最大内存空间为4GB,这里G表示数量、GB表示容量)。