可是这个Cs cs1;只是一个类的引用符的声明,声明不是不占空间的吗,何来在"栈"上存储了
Cs 是一个类名。
Cs cs1 = null;
它的意思是分配了栈空间,但此对象没有对应的堆首地址的指向。即\0
对象的声明是栈上分配一个指针,在堆上分配具体的空间。没有实例,只占用了栈上的空指针地址空间,没有堆上具体内存的开销。
class Cs
{
static void Main(string[] args)
{
Cs cs;
if(cs==null)
Console.WriteLine("size_cs");
}
}