首页 > 其他 > 详细

关于连续定义的几个变量的地址连续问题

时间:2014-03-05 02:47:52      阅读:591      评论:0      收藏:0      [点我收藏+]

代码如下:

bubuko.com,布布扣
#include<iostream>
using namespace std;
void main()
{
    int i1;
    int i2;
    int i3;
    cout<<&i1<<endl;
    cout<<&i2<<endl;
    cout<<&i3<<endl;
}
bubuko.com,布布扣

以上代码就是打印出三个变量的地址,在Debug和release模式下,情况会有所不同!!可以很明显的看出,debug下每个地址之间相差12个字节;而release模式下则相差4个字节;按我们的理解每个int类型的变量应该需要4个字节,所以release情况下的结果是符合我们的预想的。为什么debug会发生不同呢?这个地址还是连续的,只是debug版本在每个变量两边增加了,若干数据。变量尺寸变大了。32Bits 的int通常是4字节,但是debug版本,实际上分配了12字节,左右各4字节。

于是好像不连续了。实际按照12字节算的话还是连续的。

 http://bbs.csdn.net/topics/390376066

http://bbs.csdn.net/topics/310138883

1、debug模式下

bubuko.com,布布扣

2、release模式下

bubuko.com,布布扣

关于连续定义的几个变量的地址连续问题,布布扣,bubuko.com

关于连续定义的几个变量的地址连续问题

原文:http://www.cnblogs.com/yexuannan/p/3580398.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!