内存分区模型是操作系统中用于管理内存的一种方法。它将可用的物理内存划分为多个不同的区域,每个区域用于存储不同的数据或执行特定的任务。
C++的内存分区模型:
1.、代码区(Code Segment):代码区存放函数体的二进制代码,由操作系统进行管理。特点:共享、只读。
2、全局区(Data Segment):数据区存放全局变量和静态变量以及常量。常量区包括了字符串常量和其他常量。它在程序启动时分配内存,并在程序结束后由操作系统释放。全局区存放全局变量、静态变量、常量;常量区中存放const修饰的全局变量和字符串常量
3、栈区(Stack):栈用于存储局部变量、函数参数、函数调用和返回值等。栈的操作方式是先进后出(FILO)。栈的大小在编译时确定,由编译器自动管理,不需要手动释放内存。
4、堆区(Heap):由程序员分配和释放。可以使用`new`和`delete`运算符来手动管理堆内存。若程序员不释放,程序结束时由操作系统自动回收。
全局变量和局部变量的区别:是否在函数体内定义,例如int main()定义了int a=10;这是局部变量
取地址操作&:
cout <<"局部变量a的地址"<<(int)&a<<endl;