1.数据类型

值类型:赋值的时候是创建了一个副本,如,基本数据类型,枚举,结构

引用类型:赋值的是对象的引用,如,数组,类(基类 Object,字符串,自定义 class,delegate),接口

2.存储方式

引用类型:存储在堆中,类型实例化的时候,会在堆中开辟一部分空间存储类的实例,类对象的引用存储在栈中

值类型:值类型和指针分配在它声明的地方,做局部变量时,存储在栈上,做类对象的字段时,存储在堆中

1 Student S1;// S1是对象的引用
2 S1 = new Student(); // 实例化一个对象

3.堆

托管堆,不同于 C 的堆,由 CLR 管理,当堆满后,自动清理堆中的垃圾

4.栈

数据结构堆栈:一种数据结构,是一个概念

内存堆栈:内存分为栈区和堆区

               :栈区存放函数参数,局部变量,返回值数据,由编译器自动释放

               :堆区存放引用的对象,由CLR释放