66问答网
所有问题
一个字节有一个地址,而一个地址却要占4个字节,这个该如何理解?!
RT ,一个地址所占的字节比它对应的字节还要大?!
举报该问题
推荐答案 2017-12-01
楼上解释指针变量占4个字节时有误,并不是整型数字在c中占4个字节指针变量才是4个字节,而是地址编号在32位系统里是有32位组成,在64系统里是由64位组成,所以指针变量在32位占用4字节,在64位占8个字节,当然在64位可能也占4个字节,这还跟编译器有关。还有不能说一个地址占4个字节,一个地址只占一个字节,只能说数据类型占几个字节,比如,整型int i = 9,我们说整型占用4个字节,而这个整型变量的地址是这四个字节的首字节地址。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/2nsx92nvxD2s9DpUnD.html
其他回答
第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
有错帮忙指出来
1
2
下一页
相似回答
关于指针只
占4个字节
的问题
答:
问题的关键是理解指针的真是表示是什么,指针在汇编里面就是
一个地址,
不管指向什么类型,它所带代表的都是一个地址,同一个系统中
,地址
长度是一样的 所以占用的
字节
数肯定相同的
C语言 指针
占4个字节
指针应该包含了
一个
数据地址 那
这个
数据
地址占
多大...
答:
第二、指针大小为
4个字节
时,它就可以索引4g范围中任何一个值。第三、指针这4个字节自然也在内存中的,但它可以不由其他指针指向,否则就没完没了了。它的相对位置在编译时已经确定了,程序从main起点执行后,只要访问这个相对位置,取出其中的值,就可以找到指针包含的内容。反映到汇编上,就是有无 ...
...数字组成
,这
句话对吗
?1
组就是8位了,即是
1个字节,
那么就是
4个字节
咯...
答:
IP地址由4组双字节的16进制数字组成,前提是说的ipv6地址,这句话是对的,ip v6的ip是有4组16进制地址组成
。而16进制数由两组8位二进制组成,一个8位二进制数是1字节,16进制数就是双字节。如果是ipv4地址是由4字节的32位二进制数组成,一般不用16进制数来表示,当然,非要用16进制数表示的话...
请问
一个
C语言int的的问题。
答:
着一点你理解是正确的。
int a=1;a有4字节,它的地址其实也是个四字节的整型
,0013ff7c是4个字节,不是1个字节,16进制的两位譬如0x7c已经可以表达1字节的8位信息,你把16进制转成2进制,0x7c就是8个0和1组成的数了,那么a的地址有四个这样的两位16进制组成,那就是4字节,32位二进制了。
C++,两个内存
地址
之间的地址差距怎么
理解,
例如
1
:00681E98 2:00681F08...
答:
这两个内存地址存放的应该是int型的变量吧,int
占4个字节,
70=7*16个字节,那么中间一共有7*16/4个int型的变量,也就是7*4=28,相差28个int单位。两个内存
地址要
相减,必须是在同一个数组里面。例如你所说的这个问题,可能是一个int a[30]的数组,那么&a[29] - &a[1],结果就是28。再...
...可以访问的物理
地址
空间达到4GB”,8位是一
字节,
不是应该除以8再算...
答:
一个地址
对应了内存的一个储存单元
,而一个
存储单元的最小单位是8bit(位)也就是
1Byte
(字节),这才是空间,这是内存的事 cpu通过地址线寻址来访问指定内存单元,所以寻址空间是cpu和内存两者的事,将两者连起来就是,cpu认识2^32
个地址,1个地址
(对应了一个内存存储单元)是
1字节,
所以cpu可以访问的空间(...
大家正在搜
一个字符占几个字节
一个数字占几个字节
一个字母占几个字节
为什么指针地址只占4个字节
b类网络地址占几个字节
地址占用几个字节
mac地址占几个字节
一个指针占几个字节
c语言一个字节占几位
相关问题
一个变量的地址通常用首字节的地址表示,为什么首字节是占4个字...
一个地址不是一个字节吗 指针变量存的就是变量的首地址 为什么...
C语言 指针占4个字节 指针应该包含了一个数据地址 那这个数...
一个字节对应一个地址吗? 如果是,那存储字长为16位,32位...
c语言:定义一个整形变量 int a;a的地址(指针)占4个...
c语言中,指针变量为何只占4字节?
每个字节都有一个内存地址 这句怎么理解? 那么计算机又是怎么...
每个地址四个字节,相邻两个地址所指向的内存空间相差一个字节,...