下面1,2有些搞不懂,望大家帮助下。
void main()
{
int a=0;
int b=0;
AddRef(ref a,ref b); //1 ref a 这里只是引用a的地址,
// 这里的a分配是在栈中还是堆中。
Console.writenLin(a,b); //这里a=10,b=10; }
private int AddRef(ref int c,ref int d)// 2 这里c是在栈中分配还是堆中分配。因为我调用的是a的地址,那么栈中就是保存c的地址,而c的值是不是保存到堆中
。
{
c+=10;
d+=10;
}
void main()
{
int a=0;
int b=0;
AddRef(ref a,ref b); //1 ref a 这里只是引用a的地址,
// 这里的a分配是在栈中还是堆中。
Console.writenLin(a,b); //这里a=10,b=10; }
private int AddRef(ref int c,ref int d)// 2 这里c是在栈中分配还是堆中分配。因为我调用的是a的地址,那么栈中就是保存c的地址,而c的值是不是保存到堆中
。
{
c+=10;
d+=10;
}
1:ab均在栈中,因为是main函数的局部变量;
2:这里没有分配,只是地址引用。
http://blog.csdn.net/fuadam/archive/2008/08/29/2849114.aspx