c# 栈与堆 区别




栈:程序在编译时分配的内存空间,我们把这部分内存控件称之为栈空间。
栈:栈内存空间由操作系统自动分配和管理,栈内存空间是一个有序连续的内存控件,存储在栈中的数据,按照先进后出的顺序执行
栈:
c#中
值类型是直接将数据存储在栈中,由系统自动释放的数据类型。


常见的值类型(原始类型)如下:

整型:Int
长整型:long
浮点型:float
字符型:char
布尔型:bool
枚举:enum
结构:struct

栈: 保存着c# 整个程序代码的执行顺序 方法名 值类型变量




堆:程序在运行时,根据所需内存的大小,动态分配的内存空间,我们把这部分动态分配的内存空间 称之为堆空间
堆:堆空间由运行程序自动分配和释放,(c# java 也可以由GC自动回收) —堆空间是一个无序的内存空间。
堆:
c#中引用类型都存在 堆上



常见的引用类型:
指针类型
接口类型
数组
类类型
委托类型
已装箱的值类型

堆: c# 程序执行时所需的数据,对象 都存放在堆上

相关阅读:
linux c 堆和栈的区别–献给刚刚踏入linux-c世界的人