数据类型的分类,及内存分配模式
数据类型的分类
数据类型分为值类型和引用类型
值类型为(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的时候,就会出现未将对象引用设置到对象的实例的错误,
黄金定律:引用类型一定分配在堆上
值类型的局部变量分布在栈上,而类的值类型成员分布在堆上。