数据类型的分类,及内存分配模式

博客介绍了数据类型分为值类型(如int、double、bool)和引用类型(如string、数组、class),还阐述了内存分配模式主要有栈和堆。值类型局部变量分布在栈,类的值类型成员在堆;引用类型一定分配在堆,且多个引用可能共用地址。

数据类型的分类

数据类型分为值类型和引用类型

值类型为(int,double,bool)
引用类型为(string,数组,class)

内存分配模式

分配模式主要分为两种:栈和堆

值类型:

下面我们用一个图来看一下:
在这里插入图片描述
那么这个a应该等于什么呢?是3还是20?
首先,我们用
栈和堆的概念来解释一下

在这里插入图片描述
当我们改变b的时候,b=a就会随之改变,所以z002会随之改变
在这里插入图片描述
但是z001并没有改变,所以,输出的a=3;
在这里插入图片描述

引用类型:

下面我们用一个图来看一下:
在这里插入图片描述
那么,输出的Name 跟Age会是什么呢?
我们来看看栈和堆会告诉我们什么,在这里插入图片描述
因为Person p,Person p1共用的是一个地址,所以,在Person p1发生改变的同时,Person p 也发生了改变。所以,输出如下:
在这里插入图片描述
当Person p为null的时候,就会出现未将对象引用设置到对象的实例的错误,

黄金定律:引用类型一定分配在堆上
值类型的局部变量分布在栈上,而类的值类型成员分布在堆上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值