一个程序在运行中被编译器划分为内存中的四个区,堆区、栈区、代码区和全局区。其中各个区中存放的数据类型如下:
堆区(heap):堆区中主要存放由程序员调用系统函数产生的数据,如malloc函数,new函数等,如果程序员不使用函数将其释放,数据将一直存在于内存中。
栈区(stack):栈区重要存放各个函数中声明的变量,只具有暂时性,由编译器自动分配与释放,如main函数里面循环使用的i,j等等,还有各个函数声明的局部变量,当被调函数执行完之后此类数据将统统被编译器释放。
全局区:全局区分为静态全局区和常量区,全局变量、静态变量等性质变量存放于此,还有常量,如字符串常量。
代码区:此处存放为我们编写的代码二进制形式。
熟练的掌握程序中的数据分区会对我们码代码有很大的帮助。