zoukankan      html  css  js  c++  java
  • C#中数组值存在堆中的证据

       int num = 1000000;
                B b = new B();
                B[] arr=new B[num];
                B[] mmm = new B[num];
                for (int i = 0; i < num; i++)
                {

                    arr[i] = new B();

             //下面两句代码只能选一句,运行,在任务管理器中查看程序的内存占用量

             //mmm[i]=new B();  //若运行这一句,发现内存翻倍

                    mmm[i] = arr[i];//若运行这一句,发现内存基本不变
                }
                Console.WriteLine("完成");
                Console.ReadLine();

                Console.WriteLine(Object.ReferenceEquals(b,arr[0]));

    结论: 数组在内存中连续 应该是在栈中连续   但是栈中引用的对象在堆中不一定连续

  • 相关阅读:
    安利博客
    python 的高阶算法之堆排序
    functools模块用途
    类型注解
    高阶函数和装饰器
    生成器

    递归函数
    匿名函数
    函数 的 返回值作用域
  • 原文地址:https://www.cnblogs.com/mxw09/p/1837220.html
Copyright © 2011-2022 走看看