C# 关于值类型和引用类型在堆或栈中的存储

今天来捋一捋值类型和引用类型各是在哪里存储的,堆?还是栈?

首先值类型和引用类型,是C#中变量的两种类型。值类型包括我们常用的整型、浮点型、布尔型数值、枚举等。引用类型包括类、接口、数组、委托等。

至于堆和栈,是两种不同的内存区域,堆(heap),栈(即堆栈(stack))

简单来说,值类型和引用类型变量本身在栈中分配内存,引用类型的实例在堆中分配内存。(要注意的是,一定要理解清楚引用类型变量本身和引用类型的实例的区别,引用类型变量好比一个指针,它所指向的内容即引用类型的实例)。有时候又会看到一些说法,值类型在其所定义的位置分配内存,这让人感到很混乱却也不得不在意,下面简单捋一下。

如下面代码:

public class TestClass 
{
      int a = 0;
}

public void Function()
{
     int b = 0;
     TestClass class1 = new TestClass();
​​​​​​​}

方法Function中定义的值类型(整型b)在栈中分配,引用类型(类

  • 14
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值