为什么使用此代码:
unsafe
{
for (int i = 0; i < 10; i++)
{
Double w = new Double();
Console.WriteLine((IntPtr)(&w));
}
}
Run Code Online (Sandbox Code Playgroud)
我总是得到相同的号码?如何在循环中创建新变量?有了新地址吗?
原因,为什么这对我来说是个问题,我需要生成一个随机的双数,然后我在两个对象中使用一个指针(引用那个双).在其中一个对象我正在改变这个值,我希望它也改变其他对象:)
Eri*_*ert 14
从逻辑上讲,每次循环都是一个新变量.但我希望你不要指望每次都有新的变量实际被分配到堆栈!如果循环运行一百万次怎么办?编译器知道它可以重用存储,它确实可以.
如果您想要十个不同的地址,请创建一个包含十个元素的数组,将其固定到位,并获取每个元素的地址.
| 归档时间: |
|
| 查看次数: |
256 次 |
| 最近记录: |