zoukankan      html  css  js  c++  java
  • Day2 01 引用类型和值类型

    值类型:值类型变量,存储的是对象的值。给其赋值,会创建值的副本,修改任何一个副本,不会影响其他副本。

    int x = 5;  

    int y = x;  //创建一个x的副本y  x把其自身的值传送给了y 也就是5

    int z = x; //创建一个x的副本z  

    y ++;  

    z++;

    得到的结果应该是:x = 5;y = 6; z = 6;  

    引用类型:引用类型变量,存储对象的内存地址,赋值不会创建值的副本,只会创建地址的副本修改任何一个副本,也同时修改其他的副namespace 引用类型和值类型

    说白了,这东西就跟电脑复制粘贴和创建快捷方式类似。你把D盘的av拷贝到了桌面,然后看,这过程中,你删了,或者怎么了,不影响D盘里的源文件。如果你把快捷方式发送到了桌面,改了,就直接把源文件改了。

    值类型,开辟了新的内存空间,空间里存的是值。int i  ,int j ,int k都有自己的内存空间,里面存的都是自己的值,改了也互不影响。

    引用类型,就是人家把自己的内存地址给你了,你改,就把人家的值改了。

    例子:

    {
      class Program
      {
        static void Main(string[] args)
        {
          int[] arrayDarwen = new int[] { 1, 2, 3, 4, 5, 6, 7 };  //定义一个int类型的数组arrayDarwen
          int[] arrayDarwen1 = arrayDarwen;                       //注意:没有用new关键字   把arrayDarwen的地址 给了arrayDarwen1 相当于把arrayDarwen的                              门牌号给了它。类似指针。
          for (int i = 0; i < arrayDarwen.Length; i++)            //改变arrayDarwen的值
          {
            arrayDarwen1[i] += 1;
          }
          ShowArray(arrayDarwen);                                  //发现  arrayDarwen的值也变化了
          Console.WriteLine();
          ShowArray(arrayDarwen1);
          Console.ReadKey();
          }

          public static void ShowArray(int[] j)
          {
            for (int i = 0; i < j.Length; i++)
            {
              Console.Write(j[i]+",");
            }
          }
        }
    }

     

  • 相关阅读:
    【已解决】github中git push origin master出错:error: failed to push some refs to
    好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题
    THINKPHP 5.0目录结构
    thinkphp5.0入口文件
    thinkphp5.0 生命周期
    thinkphp5.0 架构
    Django template
    Django queryset
    Django model
    Python unittest
  • 原文地址:https://www.cnblogs.com/darwen/p/7802336.html
Copyright © 2011-2022 走看看