大家好好的解释一下堆和栈以及堆和栈的区别
还有:
void fun(int a){} a存储在堆还是在栈里面,如果在c#中 public void Fun(ReferenceType type){}  那么引用类型的type存储在堆里面还是在栈里面大家好好说说,

解决方案 »

  1.   

    C#中只有new过才在堆里.不new的都在栈里.
      

  2.   

    SORRY应用类型 =》堆==》引用类型 =》堆
      

  3.   

    void fun(int a){} a存储在栈里面
     public void Fun(ReferenceType type){}  那么引用类型的type存储在栈里面局部变量都储存在栈里面
      

  4.   

    把后面那个例子里面ReferenceType
    这个type会在堆上建立一个新的同样内容的区域,而栈上也会相应地创建一块内容指向 
    不会修改原来的变量
    除非使用ref或out关键字
      

  5.   

    栈: 由编译器自动分配释放,存放函数的参数值,局部变量的值等。静态变量是不入栈的。
    堆区:般由程序员分配(如new)释放,若程序员不释放,程序结束时可能由OS回收 。
      

  6.   

    堆:顺序随意栈:先进后出
    1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。堆和栈的区别可以用如下的比喻来看出:使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。
      

  7.   

    type ,在栈上存储了一个引用指针,而这个指针指向堆上的真正存放地址!