网站设计 导航条,信息流广告投放渠道,东营的招聘网站哪个有用,网站推广句子c程序在执行前#xff0c;将内存大方向划分为4个区域。
1.代码区#xff1a;存放函数的二进制代码#xff0c;有操作系统进行管理
2.全局区#xff1a;存放全局变量和静态变量以及常量
3.栈区#xff1a;由编译器自动分配释放#xff0c;存放的函数参数和局部变量
4.…c程序在执行前将内存大方向划分为4个区域。
1.代码区存放函数的二进制代码有操作系统进行管理
2.全局区存放全局变量和静态变量以及常量
3.栈区由编译器自动分配释放存放的函数参数和局部变量
4.堆区由程序员分配释放若程序员不分配释放程序结束时由操作系统回收
不同区域存放的数据赋予不同的生命周期, 给我们更大的灵活编程。
程序运行前生成了exe可执行程序未执行该程序前分为两个区域
1代码区
存放 CPU 执行的机器指令
代码区是共享的共享的目的是对于频繁被执行的程序只需要在内存中有一份代码即可
代码区是只读的使其只读的原因是防止程序意外地修改了它的指令
2.全局区
全局变量和静态变量、字符串常量、全局常量存放在这
该区域的数据在程序结束后由操作系统释放。
#include iostream
using namespace std;
int ga10;
int gb20;
const int gca2222;
const int gcb3333;
int main() {int a10;int b20;static int sa10;static int sb20;const int ca2222;const int cb3333;cout全局变量endl;coutgaendl;coutgbendl;cout全局常量endl;coutgcaendl;coutgcbendl;cout局部变量endl;coutaendl;coutbendl;cout静态局部变量endl;coutsaendl;coutsbendl;cout局部常量endl;coutcaendl;coutcbendl;return 0;
}
运行结果如下 可以看出局部常量和局部变量都是在栈区分配的符合先进后出原则。
C中在程序运行前分为全局区和代码区代码区特点是共享和只读全局区中存放全局变量、静态变量、常量常量区中存放 const修饰的全局常量 和 字符串常量
程序运行后
栈区
由编译器分配和释放存放函数的参数值和局部变量
堆区
由程序员分配释放若程序员不释放程序结束后由操作系统释放在cpp中主要由new关键字开辟内存利用delete释放内存。
利用new创建的数据会返回该数据对应的类型的指针
//堆区开辟数组
int main() {int* arr new int[10];for (int i 0; i 10; i){arr[i] i 100;}for (int i 0; i 10; i){cout arr[i] endl;}//释放数组 delete 后加 []delete[] arr;system(pause);return 0;
}