美文网首页
6. 值类型和引用类型

6. 值类型和引用类型

作者: silence_k | 来源:发表于2016-12-07 22:35 被阅读0次

    类型被分为两种:值类型(整数,bool struct char 小数)和引用类型(string 数组 自定义的类,内置的类)。
    值类型只需要一段单独的内存,用于存储实际的数据,(单独定义的时候放在栈中)
    引用类型需要两段内存
    第一段存储实际的数据,它总是位于堆中
    第二段是一个引用,指向数据在堆中的存放位置

    当我们使用引用类型赋值的时候,其实是赋值的引用类型的引用。
    如果数组是一个值类型的数组,那么数组中直接存储值,如果是一个引用类型的数组(数组中存储的是引用类型),那么数组中存储的是引用(内存地址)。

    值类型和引用类型在内存中的表示

    分析下面的变量在内存中的表示方式

    
           static void Test1()
            {
                int i = 34;
                int j = 34;
                int temp = 334;
                char c = 'a';
                bool b = true;
            }
    
            static void Test2()
            {
                int i = 34;
                int j = 234;
                string name = "zhangsan";
    
            }
    
            static void Test3()
            {
                string name = "zhangsan";
                string name2 = "lisi";
                name = name2;
                name = "wangwu";
                Console.WriteLine(name+":"+name2);
            }
    
           static void Test4()
            {
                Vector3 v = new Vector3();
                v.x = 100;
                v.y = 100;
                v.z = 100;
                Vector3 v2 = new Vector3();
                v2.x = 200;
                v2.y = 200;
                v2.z = 200;
                v2 = v;
                v2.x = 300;
                Console.WriteLine(v.x);
            }
    
            static void Test5()
            {
                Vector3[] vArray = new Vector3[]{ new Vector3(), new Vector3(), new Vector3() };
                Vector3 v1 = vArray[0];
                vArray[0].x = 100;
                v1.x = 200;
                Console.WriteLine(vArray[0].x);
            }
    

    相关文章

      网友评论

          本文标题:6. 值类型和引用类型

          本文链接:https://www.haomeiwen.com/subject/pxyjmttx.html