zoukankan      html  css  js  c++  java
  • C#基础_值类型引用类型(十一)

    值类型和引用类型:

      值类型包括:byte,short,int,long,char,float,double,bool,struct结构

      引用类型包括:类类型,接口类型和数组 等。

    值类型和引用类型特点:

      1.值类型的变量保存的是原始值,即它代表的值本身。

         引用类型变量保存的是引用值, 引用值:指向内存空间的地址,代表某个对象的引用,而不是对象本身,对象本身保存在这个引用值所表示的地址位置。

      2.值类型不管是否赋值都会在栈内存中开内存。

        引用类型当声明一个变量,在栈中分配一个内存存放地址,而此时并没有为其分配堆上的内存空间。当使用new创建一个对象实例的时候,分配堆上的空间,并且把堆上的地址值传给引用,赋值给栈中开的空间。


    值传递 和引用传递:

      1.基本数据类型传值,对形式参数修改不会影响实参;

      2.引用类型传引用,形式参数和实际参数指向同一个地址(同一个对象,同一块堆内存空间),所以对实际参数的修改会影响到实际参数的对象。

      3.string ,Integer, Double等是特殊类型处理,虽然是引用类型,但是也是按照值类型的情况传递,结果不会修改实际参数。

     1         static void Main(string[] args)
     2         {
     3             int num1 = 10;
     4             int num2 = 20;
     5             Console.WriteLine("num1:{0}-------num2{1}",num1,num2);
     6             Change(num1, num2);
     7             Console.WriteLine("num1:{0}-------num2{1}", num1, num2);
     8             //两次输出结果一样
     9         }
    10 
    11         static void Change(int a, int b)
    12         {
    13             Console.WriteLine("a = {0}, b= {1}",a,b);
    14             int temp = a;
    15             a = b;
    16             b = temp;
    17             Console.WriteLine("a = {0}, b= {1}", a, b);
    18         }

    画图演示:


    引用传递示例:

     1   class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             Person p;
     6             p = new Person();
     7             p.name = "赵云";
     8             Console.WriteLine(p.name);
     9             Test(p);
    10             Console.WriteLine(p.name);  //输出结果岳飞
    11 
    12         }
    13 
    14         static void Test(Person p)
    15         {
    16             p.name = "岳飞";
    17         }
    18     }
    19     //只写一个字段做示例
    20     class Person
    21     {
    22         public string name;
    23     }

     画图可能有点乱,如果有不清楚的地方,留言

  • 相关阅读:
    ubuntu16.04服务自启动(弹控制台)
    第十集 爱在天路唐古拉,青藏梦止长江源
    第九集 生死穿越风火山,感受尘世间轮回
    第八集 昆仑初度尘未洗,夜宿禁区五道梁
    第七集 久历风尘凡间路,终见西域玉珠峰
    第六集 飞沙走石共患难,夜扎昆仑饮圣泉
    第五集 插肩而过茶卡湖,朝发夕至格尔木
    辞职之后在家的挣扎与老爸的工作
    2018,怎么这么难,我该怎么办,我的ai和感情
    17年11月兄弟小聚
  • 原文地址:https://www.cnblogs.com/CeasarH/p/9165351.html
Copyright © 2011-2022 走看看