zoukankan      html  css  js  c++  java
  • 栈上连续定义的int变量,地址相差12个字节

    在VS2010,进行调试的时候,发现连续定义的int变量,地址相差12个字节。这是为什么?

    按照我们的理解,int占用4个字节,应该相差4个字节。这是因为VS2010在Debug模式下,int变量占用12个字节。可以这样认为,Debug模式下,在int变量的前后各增加了4个字节,用于存储调试信息,那么aa的后面4个字节,bb的前面4个字节,再加上aa本身的4个字节,刚好相差12个字节。当我们把模式设为Release,就会发现栈上连续定义的int变量,地址相差4个字节。注意:栈上地址从高向低增长。 

     1 #include<iostream>
     2 using namespace std;
     3 void main()
     4 {
     5     int aa;
     6     int bb;
     7     int cc;
     8     cout<<&aa<<endl;
     9     cout<<&bb<<endl;
    10     cout<<&cc<<endl;
    11 
    12     system("pause");
    13 }

     1、Debug模式下: 

    2、Release模式下:

  • 相关阅读:
    jsp四个域对象
    java,qq邮箱发邮件工具类(需要部分修改)
    Java使用qq邮箱发邮件实现
    JavaScript 高级
    JavaScript基础
    JQuery 高级
    JQuery 基础
    团队最后一次作业:总结
    C++多态
    结对编程
  • 原文地址:https://www.cnblogs.com/nzbbody/p/3652607.html
Copyright © 2011-2022 走看看