zoukankan      html  css  js  c++  java
  • 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  好的这文章里还提到了他的大兄弟 类型指针

    变量地址又低到高分配

  • 相关阅读:
    75. Sort Colors
    101. Symmetric Tree
    121. Best Time to Buy and Sell Stock
    136. Single Number
    104. Maximum Depth of Binary Tree
    70. Climbing Stairs
    64. Minimum Path Sum
    62. Unique Paths
    css知识点3
    css知识点2
  • 原文地址:https://www.cnblogs.com/jin-wen-xin/p/7567513.html
Copyright © 2011-2022 走看看