C# 参考变量的数据类型

C# 参考变量的数据类型,c#,C#,考虑以下声明: Class1 c1=new Class1(); 参考变量c1保存在堆栈中,实际对象分配在堆中 堆栈中此“参考变量”c1的类型是什么?它是指向堆内存地址的整数指针吗?首先,c1不一定位于堆栈上。它是一个值,该值将位于存储该变量的任何位置。它可能在堆栈上,也可能不在堆栈上,有很多因素会影响给定变量的存储位置 就变量的类型而言,c1变量的类型是Class1。该变量的值是对位于别处的对象的引用,而不是包含Class1实例的数据,这意味着具有Class1类型的变量。根据定义,一个存储位

考虑以下声明:

Class1 c1=new Class1();

参考变量
c1
保存在堆栈中,实际对象分配在堆中


堆栈中此“参考变量”
c1
的类型是什么?它是指向堆内存地址的整数指针吗?

首先,
c1
不一定位于堆栈上。它是一个值,该值将位于存储该变量的任何位置。它可能在堆栈上,也可能不在堆栈上,有很多因素会影响给定变量的存储位置


就变量的类型而言,
c1
变量的类型是
Class1
。该变量的值是对位于别处的对象的引用,而不是包含
Class1
实例的数据,这意味着具有
Class1
类型的变量。根据定义,一个存储位置包含对其他位置的
Class1
类型实例的引用,这意味着具有
Class1
类型的变量,而这正是
c1
的含义。

就C而言,类型是“Class1”。该值是一个引用。这是一个简单的指针还是其他特定于实现的指针。请检查这一点,或者这是一个胖指针:地址,以及运行时需要的其他详细信息。谢谢Servy。我现在明白了。