值类型和引用类型

(一)值类型:

1、值类型在栈中分配空间,由系统自动分配;

2、值类型互相赋值后,独立地使用各自的存储空间,操作两个不同的数据;


(二)引用类型:

1、引用类型在堆中分配空间,由new分配;

2、string是特殊的引用类型;

3、引用类型互相赋值后,使用同一个空间数据,会互相影响;



装箱:将值类型转换为引用类型的过程,是隐式的。
拆箱:将引用类型转换为值类型的过程,是显式的。


Heap是堆,空间由手动操作分配和释放,存储区是很大的自由存储区。 

Stack是栈,操作系统自动分配和释放,栈上的空间有限。程序在编译期间变量和函数分配内存都在栈上进行,且在运行时、函数调用时的参数的传递也在栈上进行。


using System;  

namespace lesson01{  

	public class Person{
		public string name;
	}

	class MainClass {   
		
		public static void Main ( string[] args ) { 
			//值类型,系统在栈中开辟了空间
			int a=5;
			int b=a;
			b += 1;
			Console.WriteLine ("A=" + a);
			Console.WriteLine ("B=" + b);

			//引用类型,需要使用new手动在堆中开辟空间
			Person p1;
			Person p2;
			p1 = new Person ();
			p1.name = "苏利文";
			p2 = p1;
			p2.name = "麦克";
			Console.WriteLine ("P1=" + p1.name);
			Console.WriteLine ("P2=" + p2.name);
		}  
	}
}
输出:

A=5

B=6

P1=麦克

P2=麦克



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值