进程空间
程序包含两个区域: text/initial data
进程包含 5个区域,分别是:text /initial data /uninitial data /heap /stack
其中 init data 和 uninit data 是全局变量(包含 static 修饰的局部变量)
uninit data 是未初始化的数据段(bss)
init data 是初始化的数据段,分为 rw(读写段) 和 ro(只读)
#include <iostream>
using namespace std;
int a; // a ---uninit data(bss)
int b = 200; // b--- init data rw
char *p = "china"; // "china" -- init data rw
int main()
{
p = "america"; // p --- init data ro
static int cc; // cc ---uninit data
static int bb = 200;// bb ---init data rw
bb = 300;
}
本文详细解释了C++程序中进程空间的构成,包括text/initialdata区域,区分了初始化数据段(如全局变量和局部变量的rw和ro部分)和未初始化数据段(BSS),以及堆栈的作用。

被折叠的 条评论
为什么被折叠?



