C# 查看内存地址

这里举的例子都是值类型的,

用引用类型string 都是报无法获取托管类型的地址和大小     的异常

换个角度看,是不是无法在vs里查看内存地址的都是引用类型,瞎猜的

查看内存地址要在UnSafe中

 unsafe
            {
                //DateTime是值类型,datetime1 是开辟了一个地址
                //datetime2 = datetime1  将datetime1赋值给datetime2  datetime2 又开辟了一个新的空间
                //datetime1 和datetime2  是两个不同的地址内存空间
                //所以改变了time1的值,是不会改变time2的值

                //这就是值类型的特点 :开辟俩地址空间
                var datetime1 = DateTime.Now;
                var datetime2 = datetime1;

                DateTime* p1 = &datetime1;
                DateTime* p2 = &datetime2;

                datetime1 = datetime1.AddDays(3);
                DateTime* p3 = &datetime1;
                DateTime* p4 = &datetime2;



                int str1 = 100;
                int str2 = str1;

                int* s1 = &str1;
                int* s2 = &str2;

                str1 = str1 + 100;

                int* s3 = &str1;
                int* s4 = &str2;

            };

 

posted @ 2021-10-25 16:36  ProZkb  阅读(661)  评论(0编辑  收藏  举报