與此代碼爲什麼:爲什麼循環正在創建具有相同地址的變量?
unsafe
{
for (int i = 0; i < 10; i++)
{
Double w = new Double();
Console.WriteLine((IntPtr)(&w));
}
}
我一直都想與相同數量的?如何在循環中創建新變量?有了新的地址?
原因,爲什麼這對我來說是一個問題,我需要生成一個隨機雙數,然後我在兩個對象中使用一個指針(其中引用該雙)。在其中一個對象中,我正在更改此值,並且我希望它也在其他對象中更改:)
「'i'」除了遞增之外沒有做任何事情;並且除了寫入(可能未初始化的)垃圾以外,你不用「'w」來做任何*。 –
我猜這是一些編譯器優化。編譯器可能會告訴你沒有用'w'做任何事情,所以它不會每次都創建一個新的實例。 – Rohan
@MichaelDautermann:你的分析的後半部分是不正確的。爲什麼地址是垃圾? –