你必须知道的.net对栈内存存储情况的作了如下描述
1.从高地址向低地址分配
2.先进后出,后进先出 也就是 先入栈的变量会往低地址处移动,后入栈的变量会存储在高地址处小弟写一简单测试程序
public unsafe static void StackAddressTest()
{
int a = 8;
bool b = true;
Console.WriteLine((int)&a);
Console.WriteLine((int)&b);
Console.WriteLine("=======================");
double c = 8.8;
Console.WriteLine((int)&a);
Console.WriteLine((int)&b);
Console.WriteLine((int)&c);
}
输出结果为
1242224
1242220
==========
1242224
1242220
1242212有背如上描述,甚不解,求教!
1.从高地址向低地址分配
2.先进后出,后进先出 也就是 先入栈的变量会往低地址处移动,后入栈的变量会存储在高地址处小弟写一简单测试程序
public unsafe static void StackAddressTest()
{
int a = 8;
bool b = true;
Console.WriteLine((int)&a);
Console.WriteLine((int)&b);
Console.WriteLine("=======================");
double c = 8.8;
Console.WriteLine((int)&a);
Console.WriteLine((int)&b);
Console.WriteLine((int)&c);
}
输出结果为
1242224
1242220
==========
1242224
1242220
1242212有背如上描述,甚不解,求教!
我还没学到了!
2.先进后出,后进先出 你如何会这样理解?? ----》也就是 先入栈的变量会往低地址处移动,后入栈的变量会存储在高地址处 结合1,应知先入的在高地址,后入的在低地址,才符合从高相低分配啊