栈区
由编译器自动分配释放
通常存放函数的参数值、局部变量值
类似堆栈
堆区
可手动分配释放,也可待程序结束后由OS释放
类似链表
全局区(静态区)
程序结束后由OS释放
通常存放全局变量、静态变量static
文字常量区
程序结束后由OS释放
存放常量字符串
程序代码区
存放函数体二进制代码
案例
int num1 = 0 //全局初始化区(全局变量)
int *ptr1; //全局未初始化区
int main(){
int num2; //栈区(主函数参数)
char str[] = "老九君"; //栈区
char *ptr2; //栈区
char *ptr3 = "老九君"; //老九君:常量区
//ptr3:栈区
static int num3 = 1024; //全局初始化区
ptr1 = new int[10]; //ptr在栈区
ptr2 = new char[20]; //new在堆区
return 0;
}