gpt4 book ai didi

c# - 为什么for循环正在创建具有相同地址的变量?

转载 作者:行者123 更新时间:2023-11-30 18:54:45 25 4
gpt4 key购买 nike

为什么要用这段代码:

unsafe
{
for (int i = 0; i < 10; i++)
{
Double w = new Double();
Console.WriteLine((IntPtr)(&w));
}
}

我总是收到相同的号码?如何在循环中创建新变量?有了新地址?

之所以这对我来说是个问题,是因为我需要生成一个随机 double ,然后我在两个对象中使用一个指针(它引用那个 double )。在其中一个对象中,我正在更改此值,并且我希望它在另一个对象中也发生更改:)

最佳答案

从逻辑上讲,每次循环都是一个新变量。但我希望您不要期望每次都从堆栈中实际分配一个新变量!如果循环运行一百万次怎么办?编译器知道它可以重新使用存储,它确实这样做了。

如果您想要十个不同的地址,请制作一个包含十个元素的数组,将其固定到位,然后获取每个元素的地址。

关于c# - 为什么for循环正在创建具有相同地址的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19072579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com