为什么每次运行应用程序时字符串指针位置都不同,当我使用时,StringBuilder
但在声明变量时却相同?
void Main()
{
string str_01 = "my string";
string str_02 = GetString();
unsafe
{
fixed (char* pointerToStr_01 = str_01)
{
fixed (char* pointerToStr_02 = str_02)
{
Console.WriteLine((Int64)pointerToStr_01);
Console.WriteLine((Int64)pointerToStr_02);
}
}
}
}
private string GetString()
{
StringBuilder sb = new StringBuilder();
sb.Append("my string");
return sb.ToString();
}
输出:
40907812
178488268
下次:
40907812
179023248
下次:
40907812
178448964