- 内存四区:代码区,全局区,栈区,堆区
- 全局区:全局变量、静态变量、常量
- 栈区:由编译器自动分配释放,存放函数的参数值、局部变量
- 注意:不要返回局部变量的地址,栈区开辟数据由编译器自动释放
- 堆区:由程序员分配释放,程序结束时由操作系统回收
- 在C++中利用new在堆区开辟内存,释放利用delete
#include <iostream>
using namespace std;
int a = 10;//全局变量
int * func()
{
//利用new可以将数据开辟到堆区,需要用指针去接收这个地址
int * p = new int(10);
return p;
//释放:delete p;
//释放数组:delete [] arr;
}
int main()
{
int b = 10;//局部变量
static int s_a = 10;//静态变量
//字符串常量—— "hello world"
const int c_g_a = 10;//const修饰的局部变量不在全局区
int * p = func();
cout << *p <<endl;
return 0;
}
网友评论