C#中的数据类型

C#中数据类型按照数据在内存中的存储位置分为: 值类型 和 引用类型.

值类型包含:long int  short byte  ulong uint ushort sbyte float  double  decimal  char  bool 枚举 结构体

引用类型包含:string  类  数组

内存有两个重要的组成部分:栈空间 和 堆空间   值类型的数据存储在内存的栈空间中,引用类型的数据存储在内存的堆空间中.

如上图,值类型的数据,直接存储在栈空间中. 变量a存储的值为10.  引用类型p在栈空间存储的是Person对象在堆空间中的地址,指向Person对象.

这就导致了,变量间的赋值,值类型是值与值的拷贝,将a变量的值赋值给b变量,然后改变b变量的值,对a变量没有影响.  但是引用类型之间的赋值,拷贝的是地址.比如,把p变量的值(注意:这里是地址)赋值给变量q.

这时,变量p q 就同时指向了同一个对象,通过修改p q 任何一个变量的值,另一个变量会受影响的原因.

原文地址:https://www.cnblogs.com/feier1992/p/6087209.html