c++ 内存格局

全局数据区(data area)

全局变量、静态数据、常量存放在全局数据区;

代码区(code area)

所有类成员函数和非成员函数代码存放在代码区;

栈区(stack area)

为运行函数而分配的局部变量、函数参数、返回数据、返回地址等存放在栈区;

堆区(heap area)

其余的空间都被称为堆区。用户动态申请内存空间(需显示释放,delete或free)分配在堆区。

 

 

一 . 全局变量

1. extern 用法

extern变量,即外部变量(全局变量),是在函数的外部定义的,它的作用域从变量的定义出开始到本程序文件的结束。在此有效作用域内,extern变量可以为程序中各个函数使用。编译时,extern变量与static变量分配在静态存储区。

1.1 extern使用举例

/*test.h*/

class test()

{

public:

test();

~test();

void show(){  printf("----------hello world!---------\n");  }

}

extern test  my_test;

 ////////////////////////////////////////////////////////////////////////////////////////////

/*test.cpp*/

#include<stdio.h>

#include<stdlib.h>

test  my_test; //此处与test.h头文件中的extern test  my_test相对应

test::test(){}

test::~test(){}

void test::show(){  printf("----------hello world!---------\n");  }

 //////////////////////////////////////////////////////////////////////////////////////////////

/*main.cpp*/

#include"test.h"

int main()

{my_test.show();}

未完待续!

你可能感兴趣的:(C++,delete,存储)