网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月29日
漏签
0
天
c++吧
关注:
543,008
贴子:
2,091,520
看贴
图片
吧主推荐
游戏
11
回复贴,共
1
页
<<返回c++吧
>0< 加载中...
求解答,变量在内存里的地址对应关系
只看楼主
收藏
回复
popopison
,
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
连续定义6个int变量,然后直接打印他们的地址。
64位系统,照理说,一个int占4个字节,也就是32位。一个1位的16进制数字可以表示一个4位的2进制数字。
打印出来的是16进制的地址数字,这6个int变量的地址之间分别隔了4个16进制数字,16位,也就是说这些int变量在内存里所占的长度是16位,2字节。是我哪里理解出错了吗?
02644437741zsq
&&
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
要是我没记错的话,地址只是个位置而已,似乎和大小没关系吧,你试试long long
倪昊驰
&&
6
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
按字节编址
雪丶在天
<
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
写了些关于计组原理的文字,发现越写可能越绕,一言以蔽之:cpu寻址是按字节(Byte)为单位的.
1Byte=8bit ,所以图中地址增长了4,也就是两变量直接间隔了4x8=32位.
你得弄明白,cpu寻址的地址和内存位置的对应关系并不是数学上的一位十六进制数据对四位二进制数据.
sqrt51
,
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
四个十六进制数字的偏移量不就是4Byte = 32Bit吗
幻の上帝
->*
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
常识性错误上面说过了,就说几个方法论上狗屁不通的问题:
1. << int* 内容 implementation-defined 。只要标准库文档有写,随便瞎输出什么玩意儿都可以。当然你愿意指望输出的东西就是“地址”,也懒得找文档,你随意。
2. 就算真是地址,决定对象实际地址布局的是对齐,而不是大小。
你 64 位系统要是按 SSE 要求强制对齐你是不是就以为随便什么整数都 16 字节了?
o規則之上o
^
8
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
(X)
隔了4个16进制数字
(O)
隔了4 个 字节(byte) ( 1 byte = 8 bit ) =
隔了32 (4 * 8) 位(bit) =
隔了8(32 / 4)个16(2 ^ 4)进制数字(4 bit)
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示