引用类型 与 值类型

Posted cdut-yy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了引用类型 与 值类型相关的知识,希望对你有一定的参考价值。

C#

简单类型,结构类型,枚举类型是值类型,存储在栈上;

接口,类,字符串,数组,委托都是引用类型,存储在推中;

如图,可以表示它们的存储原理,a1,b1为值类型,值存储在栈中,在栈中有个地址;a2,b2为引用类型,值存储在堆中,栈中存放的堆中地址,在栈中也有个地址。

技术分享图片

 

所以,值类型赋值,是把a1的值赋给b1,修改b1不影响a1;引用类型赋值,是把a2的地址赋给b2,两个变量指向相同的值,对其中一个修改另一个也被修改。

 

以上是关于引用类型 与 值类型的主要内容,如果未能解决你的问题,请参考以下文章

Swift 中的值类型与引用类型

值类型与引用类型

值类型与引用类型

c#中值类型和引用类型的区别

值类型和引用类型的区别

c#中值类型与引用类型的值传递与引用传递