C# 数组在内存中的存储
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# 数组在内存中的存储的更多相关文章
- Java中数组在内存中的图解
Java中的数组在内存中的图解,其实对于数组,还是比较熟悉的,平时用的也是很多的,在看数据结构与算法的极客时间专栏,最常用的10个数据结构:数组.链表.栈.队列.散列表.二叉树.堆.跳表.图.Trie ...
- QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用
FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QL ...
- C语言之数据在内存中的存储
C语言之数据在内存中的存储 在我们学习此之前,我们先来回忆一下C语言中都有哪些数据类型呢? 首先我们来看看C语言中的基本的内置类型: char //字符数据类型 short //短整型 int //整 ...
- 一个 -100.01 的double 在内存中怎么存储的. 一个中文String 在内存中占多少直接 utf-8 / GBK
一.-100.01 的double 在内存中怎么存储的 double双精度数据类型存储格式IEEE 双精度格式为8字节64位,由三个字段组成:52 位小数 f : 11 位偏置指数 e :以及 1 位 ...
- float 在内存中如何存储的
float类型数字在计算机中用4个字节存储.遵循IEEE-754格式标准: 一个浮点数有2部分组成:底数m和指数e 底数部分 使用二进制数来表示此浮点数的实际值指数部分 占用8bit的二进制数, ...
- <转载>浅谈C/C++的浮点数在内存中的存储方式
C/C++浮点数在内存中的存储方式 任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100.则在Intel CPU架构的系统中 ...
- String在内存中如何存储(Java)
JDK1.8中JVM把String常量池移入了堆中,同时取消了“永久代”,改用元空间代替(Metaspace)java中对String对象特殊对待,所以在heap区域分成了两块,一块是字符串常量池(S ...
- 数据在内存中的存储方式( Big Endian和Little Endian的区别 )(x86系列则采用little endian方式存储数据)
https://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html 1.故事的起源 “endian”这个词出自<格列佛游记>.小 ...
- C语言中浮点数在内存中的存储方式
关于多字节数据类型在内存中的存储问题 //////////////////////////////////////////////////////////////// int ,short 各自是4. ...
随机推荐
- 第四章:4.0 python常用的模块
1.模块.包和相关语法 使用模块好处: 最大的好处是大大提高了代码的可维护性.其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们在编写程序的时候,也经常引用其他模块,包括Pyt ...
- 项目之初的模型设计与status状态字段
0X01 开始做一个app的时候,要先做的是流程设计与数据库模型设计. 但做的模型设计往往是设置字段满足当前的需求,缺乏足够的经验,即使为以后的功能预留出位置,也无法考虑周全. 比如,刚开始做用户表, ...
- webpack打包样式代码去重
一.问题描述 控制台审查样式,同一个样式被导入很多遍,每调用一次@import "common.less";打包时都会多出一份类似的样式代码. 二.问题分析 补上... 三.解决方 ...
- [Python]Python中的浅复制与深复制
看python的文档,发现list有copy方法,描述说效果同a[:]. 感觉有点惊讶,之前一直以为a[:]执行的是深复制. test了一下,发现确实如果a中存在可变对象,如list/set/dict ...
- Chapter 3 Introduction to Objects and Input/Output
与声明一个primitive variable不同,声明一个对象的时候,并不创建用来存储一个对象的内存空间,而是创建了一个存储该对象所在内存空间的地址. 在java里,new是一个操作符,它让系统分配 ...
- python#读csv,excel,json数据
#读csv,excel,json数据 with open('E:\\test\\xdd.csv','r') as f: for line in f.readlines(): print(line) i ...
- helm-chart6,子chart 和全局值
chart可以有称为子chart的依赖关系 关于子chart 1,子chart认为是"独立的",即子chart不能明确依赖于其父chart. 2,子chart无法访问其父项的值. ...
- CCTV5 前端
get : fre = 11868 symbolrate = 27500 pls_n=0------167 CCTV 9------------168 CCTV 3--------- ...
- vue_vuex
vuex vue 插件 npm install vuex --save 将多个组件的共享状态进行 集中式管理 - 极易破坏单向数据流 多个视图依赖于同一状态 ----- 就 props 而言:嵌套组件 ...
- Oracle 触发器 trigger
触发器: 当用户登录/退出或者操作某个数据对象或者进行DDL(建表,建view)引起某个储存过程的值的变化,把这个隐含被调用的过程,称为触发器. 语法 CREATE OR REPLACE TRIGGE ...
