一个完整的应用程序在内存中的分布通常会是这样子的:
代码区(Code Segment):代码区,顾名思义,存放程序的可执行代码。
常量区(Const Segment):所有的常量都是存放在常量区。
全局数据区(Global Data Segment):全局数据区存放的是全局变量或者是static 变量。
栈区(Static Segment):栈区存放的是所有局部变量,一个函数的参数。
堆区(Heap Segment):堆区的数据由程序员申请并且释放,如果程序员不释放,那么程序在结束之后,会由操作系统进行释放。堆区的内存空间通过malloc或者new申请出来的。
(C#中 struct是在栈区而class是在堆区,因此C#中,struct的速度比class快。)