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

RT,一个地址所占的字节比它对应的字节还要大?!... RT ,一个地址所占的字节比它对应的字节还要大?! 展开
 我来答
帅气东09
2017-12-01
知道答主
回答量:1
采纳率:0%
帮助的人:931
展开全部
楼上解释指针变量占4个字节时有误,并不是整型数字在c中占4个字节指针变量才是4个字节,而是地址编号在32位系统里是有32位组成,在64系统里是由64位组成,所以指针变量在32位占用4字节,在64位占8个字节,当然在64位可能也占4个字节,这还跟编译器有关。还有不能说一个地址占4个字节,一个地址只占一个字节,只能说数据类型占几个字节,比如,整型int i = 9,我们说整型占用4个字节,而这个整型变量的地址是这四个字节的首字节地址。
营庆lu
2021-12-01
知道答主
回答量:1
采纳率:0%
帮助的人:426
展开全部
内存中的每一个字节都进行了编号,这个编号就是地址,地址的意义在于我们可以快速读取到这个地址上面的数据,编号越大说明这个字节距离初始字节越远,那么最远的地址有多大呢?
如果是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个字节。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6e87980
2017-09-18
知道答主
回答量:5
采纳率:0%
帮助的人:4.1万
展开全部
把一个地址看成一个盒子,一个盒子只能装一个字节(也就是8位、8bit)。你看到的4个字节,其实是32位,其实是这个盒子的门牌号。总共有2^32个盒子。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2015-06-06 · TA获得超过1134个赞
知道小有建树答主
回答量:742
采纳率:73%
帮助的人:425万
展开全部
真是无语 是谁给你说的一个地址占4个字节 不要被误导好吗
地址哪有什么大小 我可以分配一块10万字节的地址 也可以分配一块1个字节的地址
你说的占4个字节的东西叫指针 准确的说叫指针变量 指针变量也是变量 是存储变量地址的变量
概念分清楚 指针变量不是地址 只是放地址的变量
追问
请问指针变量占四个字节的原因是?
追答
指针变量 其实储存的是地址编号   也就是一个整数  一个整型数字在C中就是占4个字节
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4f8ea9f
2019-05-18
知道答主
回答量:37
采纳率:25%
帮助的人:5.3万
展开全部
一个字节一个地址 每一个字节被分配一个地址 不是一个字节等于一个地址
一个地址占4个字节 因为32位cpu访问的内存地址(二进制)都是:由0和1组成的32位数 1b(字节)=8bit(用0或1表示) 32/8=4
有错帮忙指出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式