class foo
{
string bar()
{
const string c = "dead beef";
return c;
}
void Test()
{
string a = bar();
string b = bar();
}
}
是a
和b
个不同的实例,还是指向相同的内存地址? (= =比较会返回true,无论它们是否是同一个实例,所以我无法对它进行真正的测试)
答案 0 :(得分:0)
不,但对大多数情况来说并不重要。
对于结构体(int
,float
,DateTime
等),该值将放在堆栈上,因此内存重用不相关。
对于字符串,const不执行任何特殊操作,但字符串常量本身是实例化的,因此所有匹配的常量字符串值将指向内存中的相同实例。