面向对象day1 C++核心编程 内存分区模块
贴图:
C++面向对象技术是C++的核心部分。以下分享内存分区模块内容。
参考:黑马程序员
开发环境:Microsoft Visual Studio
C++程序在执行时,将内存分为四块区域:
- 全局区
- 代码区
- 栈区
- 堆区
内容:
内存 | 作用 | 时间 |
---|---|---|
全局区 | 存放函数体的二进制代码,由操作系统进行管理 | 程序运行前 |
代码区 | 存放全局变量,静态变量,常量 | 程序运行前 |
栈区 | 由编译器自动分配和释放,存放函数的参数,局部变量 | 程序运行后 |
堆区 | 由程序员分配和释放,若程序员不手动释放,程序结束是操作系统回收 | 程序运行后 |
存在的意义:
不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活性。
1.程序运行前
1.1.全局区
-
全局变量和静态变量存放在此
-
全局区还包含了常量区,字符串常量和其他常量也存放在此
该区域的数据在程序结束后由操作系统释放
#include<iostream>
using namespace std;
//创建全局变量
int g_a = 10;
int g_b = 10;
const int c_g_a = 10;
const int c_g_b = 10;
int main()
{
//全局区
//全局变量 静态变量 常量
//创建一个普通的局部变量
int a = 10;
int b = 10;
cout << "局部变量a的地址" << (int)&a << endl;
cout << "局部变量b的地址" << (int)&b << endl;
cout << "全局变量g_a的地址" <