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]+",");
            }
          }
        }
    }

     

  • 相关阅读:
    pygame 笔记-7 生命值/血条处理
    pygame 笔记-6 碰撞检测
    pygame 笔记-5 模块化&加入敌人
    pygame 笔记-4 代码封装&发射子弹
    tk.mybatis通用插件updateByPrimaryKeySelective无法自动更新ON UPDATE CURRENT_TIMESTAMP列的解决办法
    pygame 笔记-3 角色动画及背景的使用
    pygame 笔记-2 模仿超级玛丽的弹跳
    pygame 笔记-1 按键控制方块移动
    mysql技巧:如果记录存在则更新/如果不存在则插入的三种处理方法
    mac上mysql8.0以tar.gz方式手动安装
  • 原文地址:https://www.cnblogs.com/darwen/p/7802336.html
Copyright © 2011-2022 走看看