为了账号安全,请及时绑定邮箱和手机立即绑定

我试了一下,发现p &a和p &b的大小和老师的是相反的,a的地址不是应该比b的地址小一些吗?

http://img1.sycdn.imooc.com//5947ffc40001afb306500473.jpg

http://img1.sycdn.imooc.com//5947ffc400018c9f06500473.jpg

如我截图所示

正在回答

4 回答

正常情况下 地址的分配简单的理解为 按 源代码  从上往下  没有问题 

一般情况下 是这样 。 这里可能 编译器 如果优化 或许 会不一样  但是暂时 不考虑这个情况 

但是 在你的代码里  这些 变量 是分配到 系统的栈内存 的  栈内存  跟操作系统内核 一样在高位

就是  假设你是32位系统 系统内存 占用2g 内存 

那么  你的地址   大概分配情况就行 

0x  FF FF FF FF  这个是内存的 首地址 

然后 往下一直是内核地址 

直接到  2g内存结束 大概 位置为 1000 0000 0000 0000 0000 0000 0000 0000   就是 0x 80 00 00 00 

然后栈内存的首地址  位置为 0111 1111 1111 1111 1111 1111 1111 1111 就是 0x 7F  FF FF FF

从上 往下依次越来越小 

所以你看到的确实是  内存地址的值 变小了  你测试的是对的

但是你没有注意 课程里说的 从高地址开始分配



0 回复 有任何疑惑可以回复我~

同问。a地址应该比b大才对吧

0 回复 有任何疑惑可以回复我~


从上往下分配


0 回复 有任何疑惑可以回复我~

地址的分配并不是一定按命名顺序的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我试了一下,发现p &a和p &b的大小和老师的是相反的,a的地址不是应该比b的地址小一些吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信