首页 > 其他 > 详细

说说值类型和引用类型吧

时间:2014-02-17 18:28:01      阅读:365      评论:0      收藏:0      [点我收藏+]

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

先上程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
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();
    }
}

  运行结果想必都知道了

bubuko.com,布布扣
重点看下面的:
bubuko.com,布布扣
    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;
        }
    }
bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

说说值类型和引用类型吧

原文:http://www.cnblogs.com/ouzining/p/3552407.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!