一个字节有一个地址,而一个地址却要占4个字节,这个该如何理解?!

RT ,一个地址所占的字节比它对应的字节还要大?!

楼上解释指针变量占4个字节时有误,并不是整型数字在c中占4个字节指针变量才是4个字节,而是地址编号在32位系统里是有32位组成,在64系统里是由64位组成,所以指针变量在32位占用4字节,在64位占8个字节,当然在64位可能也占4个字节,这还跟编译器有关。还有不能说一个地址占4个字节,一个地址只占一个字节,只能说数据类型占几个字节,比如,整型int i = 9,我们说整型占用4个字节,而这个整型变量的地址是这四个字节的首字节地址。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-01
内存中的每一个字节都进行了编号,这个编号就是地址,地址的意义在于我们可以快速读取到这个地址上面的数据,编号越大说明这个字节距离初始字节越远,那么最远的地址有多大呢?
如果是32位系统,主流计算机是二进制的,那么这个系统的最大寻址能力是2^32,就是32位电脑最多支持4G运存,那么最远的地址就是4G运存的最后一位字节,给这个字节编号就是2^32(一般把这个数用16进制表示),为了能表达这个最大的位置数,就需要想办法了
一个字节有8个比特位,1个比特位只能表达1和0两个数,2个比特位可以表达4个数,要表达2^32个数,就需要32个比特位,也就是4个字节,所以一个指针变量至少需要4个字节才够用。那为什么不用5个字节6个字节呢,浪费内存资源。
同样64位系统最大的距离是2^64,为了表达这个最大位置,就需要64个比特位,也就是8个字节。
第2个回答  2017-09-18
把一个地址看成一个盒子,一个盒子只能装一个字节(也就是8位、8bit)。你看到的4个字节,其实是32位,其实是这个盒子的门牌号。总共有2^32个盒子。
第3个回答  2015-06-06
真是无语 是谁给你说的一个地址占4个字节 不要被误导好吗
地址哪有什么大小 我可以分配一块10万字节的地址 也可以分配一块1个字节的地址
你说的占4个字节的东西叫指针 准确的说叫指针变量 指针变量也是变量 是存储变量地址的变量
概念分清楚 指针变量不是地址 只是放地址的变量追问

请问指针变量占四个字节的原因是?

追答

指针变量 其实储存的是地址编号 也就是一个整数 一个整型数字在C中就是占4个字节

本回答被提问者和网友采纳
第4个回答  2019-05-18
一个字节一个地址 每一个字节被分配一个地址 不是一个字节等于一个地址
一个地址占4个字节 因为32位cpu访问的内存地址(二进制)都是:由0和1组成的32位数 1b(字节)=8bit(用0或1表示) 32/8=4
有错帮忙指出来
相似回答