C# 数组是引用类型,那么在内存中是如何存储的呢?

在VS中调试C#程序,如何查看内存、寄存器、反汇编 在这篇文章里看到了如何在VS 中查看内存

先断点打在数组创建后语句那里,点debug->Windows->Memory, 选一个随便memory

在immediate window里 输入 &变量名 arr,获取arr的内存地址。

&arr
0x009becd8  ----->在堆栈中引用地址
*&arr: 0x02d75cb4  ----->在托管堆中空间的起始地址

经过这几天的快餐知识学习,知道了堆栈中是由高向低填充。托管堆中好像相反,这句话不确定,因为垃圾回收了一部分,说是把那些有引用的对象都压缩到一起了。

看内存哈~ c8 3b b8 72 09 什么东西I don't know, if you know, let me know.

INT 32, 普通值类型都是结构体。

还有一个招,最近才学的,VS里面自动生成构造函数,输入ctor,然后点 ctrl+R+E

还有一个招,自动生成get,set。 private int _name, 然后点 Tab

string和object是唯一预定义的两个引用类型。

16 在内存中存储 00 00 00 10

15 在内存中存储 00 00 00 0F

突然想反射一下 arr[0].GetType()   int32表示的范围是

正负2的31次方的整数。难道是有一位表示符号位吗?我猜的。

http://blog.csdn.net/zxsydyq/article/details/9125641 c#中int16 int32 int64区别

long不是真的long,.NET Framework 类型是int64;short不是真的短,.NET Framework 类型是int16.

-2,147,483,648 到 2,147,483,647 int32范围

16进制的1位=2进制的4位,那么32位的2进制,需要32/4 = 8 个16位表示。嗯正好,推理正确。

http://blog.csdn.net/acmilanvanbasten/article/details/14521051 同步块索引syncblock  好的这文章里还提到了他的大兄弟 类型指针

变量地址又低到高分配

C# 数组在内存中的存储的更多相关文章

  1. Java中数组在内存中的图解

    Java中的数组在内存中的图解,其实对于数组,还是比较熟悉的,平时用的也是很多的,在看数据结构与算法的极客时间专栏,最常用的10个数据结构:数组.链表.栈.队列.散列表.二叉树.堆.跳表.图.Trie ...

  2. QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用

    FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QL ...

  3. C语言之数据在内存中的存储

    C语言之数据在内存中的存储 在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢? 首先我们来看看C语言中的基本的内置类型: char //字符数据类型 short //短整型 int //整 ...

  4. 一个 -100.01 的double 在内存中怎么存储的. 一个中文String 在内存中占多少直接 utf-8 / GBK

    一.-100.01 的double 在内存中怎么存储的 double双精度数据类型存储格式IEEE 双精度格式为8字节64位,由三个字段组成:52 位小数 f : 11 位偏置指数 e :以及 1 位 ...

  5. float 在内存中如何存储的

    float类型数字在计算机中用4个字节存储.遵循IEEE-754格式标准:    一个浮点数有2部分组成:底数m和指数e 底数部分 使用二进制数来表示此浮点数的实际值指数部分 占用8bit的二进制数, ...

  6. <转载>浅谈C/C++的浮点数在内存中的存储方式

    C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100.则在Intel CPU架构的系统中 ...

  7. String在内存中如何存储(Java)

    JDK1.8中JVM把String常量池移入了堆中,同时取消了“永久代”,改用元空间代替(Metaspace)java中对String对象特殊对待,所以在heap区域分成了两块,一块是字符串常量池(S ...

  8. 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)

    https://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自<格列佛游记>.小 ...

  9. C语言中浮点数在内存中的存储方式

    关于多字节数据类型在内存中的存储问题 //////////////////////////////////////////////////////////////// int ,short 各自是4. ...

随机推荐

  1. 关于jmeter读取CSV文件的详细设置

    jmeter 读取excel数据使用的方法是使用Jmeter CSV Data Set Config参数化 但是将excel文件保存成csv格式后,jmeter读取后返回的数据总是出现乱码问题, 以下 ...

  2. 大数据技术 - MapReduce 应用的配置和单元测试

    上一章的 MapReduce 应用中,我们使用了自定义配置,并用 GenericOptionsParser 处理命令行输入的配置,这种方式简单粗暴.但不是 MapReduce 应用常见的写法,本章第一 ...

  3. django——模型层之多表操作

    django的多表操作 1.使用场景 在实际生产过程多,我们面对的数据纷繁复杂,此时就需要良好的数据结构设计,多表之间的约束关系为我们提供了数据管理以及查询的便利.在MYsql中我们利用外键(fore ...

  4. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Korea

    A. Donut 扫描线+线段树. #include<cstdio> #include<algorithm> using namespace std; typedef long ...

  5. Showstopper [POJ3484] [二分] [思维]

    Description 给你n个数列,问哪一个数字在所有的数列中出现了奇数次(最多一个). Sample Input 1 10 1 2 10 1 1 10 1 1 10 1 1 10 1 4 4 1 ...

  6. angular.isElement()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. python开发之virtualenv与virtualenvwrapper讲解

    在使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题: 亦或者是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难. 此时,我们需要对于不同的工程使用 ...

  8. [LeetCode] Minimum Distance Between BST Nodes 二叉搜索树中结点的最小距离

    Given a Binary Search Tree (BST) with the root node root, return the minimum difference between the ...

  9. 十二、JDBC

    day17 JDBC入门 l 导jar包:驱动! l 加载驱动类:Class.forName(“类名”); l 给出url.username.password,其中url背下来! l 使用Driver ...

  10. 洛谷P3385 【模板】负环

    题目描述 暴力枚举/SPFA/Bellman-ford/奇怪的贪心/超神搜索 寻找一个从顶点1所能到达的负环,负环定义为:一个边权之和为负的环. 输入输出格式 输入格式: 第一行一个正整数T表示数据组 ...