七种变量:静态变量、实例变量、数组元素、值参数、引用参数、输出形参、局部变量
引用类型的变量与实例
Student stu;
计算机看到引用类型,直接给它分配 4 个字节,而且全部 Bit 置 0,告诉你这个变量没有引用任何实例。
Student stu;
stu = new Student();
现在,引用变量里面存的是实例的地址。
图中左侧是栈,右侧是堆。
(内存空间分为栈空间和堆空间,值类型的数据在栈空间中分配,引用类型数据(对象)在堆空间中分配。)
Student stu;
stu = new Student();
Student stu2;
stu2 = stu;
变量的默认值
一旦变量在内存中分配好后,它的内存块就被统统刷成 0,这就是它的默认值。
局部变量没有默认值,因为 C# 为了避免不安全代码,要求局部变量必需有显式赋值。
装箱与拆箱
int a = 100;
object x;
装箱
int a = 100;
object x;
x = a;
拆箱
int a = 100;
object x;
x = a;
int b = (int)x;
Console.WriteLine(b);