zoukankan      html  css  js  c++  java
  • [c++]程序的内存划分理解

    • 全局和静态数据区:用于存放全局变量和静态变量(全局变量和局部变量)
    • 常量数据区:用于存放常量数据
    • 代码区:用于存储代码
    • 栈:用于局部变量和函数参数
    • 堆:程序员申请(程序员控制的部分,new/delete
    #include <stdio.h>
    #include <stdlib.h>
    
    int gGlobal=100; // global 
    
    int main(void){
            char *pLocalString1="LocalString1";
            const char *pLocalString2="LocalString2";
            static int nLocalStatic=100;
            
            int nLocal=10;
            const int nLocalConst=20;
            
            int *pNew = new int[5];
            char *pMalloc = (char*)malloc(1);
            
            
            printf("global var            0x%x
    ",&gGlobal);
            printf("static var            0x%x
    ",&nLocalStatic);
            printf("
    ");
            printf("local var1                    0x%x
    ",&pLocalString1);
            printf("local var2(const)            0x%x
    ",&pLocalString2);
            
            printf("
    ");
            
            printf("pNew                     0x%x
    ",pNew);
            printf("pMalloc             0x%x
    ",pMalloc);
            
            pLocalString1[1]='a';//error 字符常量,数据定义好后,不能在修改.该地址,在编译前已经确定好
            printf("
    ");
            
            printf("local point(pNew)                     0x%x
    ",&pNew);
            printf("local point(pMalloc)              0x%x
    ",&pMalloc);
            printf("local point(pLocalString1)                     0x%x
    ",&pLocalString1);
            printf("local point(pLocalString2)                     0x%x
    ",&pLocalString2);
            printf("local point(nLocalConst)                     0x%x
    ",&nLocalConst);
            printf("local point(nLocal)                     0x%x
    ",&nLocal);
            
            
    }
  • 相关阅读:
    MvvmTest
    win8 app 相关的几个网站
    autp
    分析WPF代码工具
    mdsn
    线程和委托
    C#guanli
    学习Boost小结(一)
    Boost.test库的配置
    自己真是太没正事了.
  • 原文地址:https://www.cnblogs.com/heidsoft/p/3704559.html
Copyright © 2011-2022 走看看