zoukankan      html  css  js  c++  java
  • 说说值类型和引用类型吧

    值类型和引用类型这东西怎么解释比较好呢?

    先上程序:

        class Program
        {
            static void Main(string[] args)
            {
                int x = 0;
                int y = x;//取x的值赋予y,存于栈中,一级缓存
                x = 10;
                Console.Write("x={0};", x);
                Console.Write("\n");
                Console.Write("y={0};", y);
                Console.ReadLine();
            }
        }
    

      运行结果想必都知道了

    重点看下面的:
        class Program
        {
            static void Main(string[] args)
            {
                yingyong();
            }
            private static void yingyong()
            {
                A a1 = new A();
                A a2 = a1;//引用了a1的内存地址
                a1.yinyongzhi = 1;
                Console.Write("a1={0};", a1.yinyongzhi );
                Console.Write("\n");
                Console.Write("a2={0};", a2.yinyongzhi );
                Console.ReadLine();
            }
        }
        public class A
        {
            public int yinyongzhi;
            public A()
            {
                yinyongzhi =111;
            }
        }

    来猜猜输出答案是什么,是不是有像笔试题一样,引用类型其实和c里的指针一样,指向分配的缓存地址,只取地址上的东西,所以呢a1,a2的值应该是一样的,而不是a1等于1,a2等于111,因为a2引用了a1地址上的值。

    很简单吧,下次看到别人的程序时,若是有看到赋值的地方出现和自己预想的不一样的地方,留意一下,也许就是这问题了。

  • 相关阅读:
    requireJS的使用_API-1
    C# WebService动态调用
    Jquery 分页插件 Jquery Pagination
    脸识别API微软牛津项目
    从源码看Android中sqlite是怎么读DB的(转)
    浅谈SQL注入风险
    django
    java自动转型
    二叉搜索树(Binary Search Tree)--C语言描述(转)
    微软2014校园招聘笔试试题
  • 原文地址:https://www.cnblogs.com/ouzining/p/3552407.html
Copyright © 2011-2022 走看看