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     }

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

  • 相关阅读:
    Study Plan The Twelfth Day
    Study Plan The Fifteenth Day
    Study Plan The Seventeenth Day
    Study Plan The Tenth Day
    Study Plan The Eighth Day
    Study Plan The Eleventh Day
    Study Plan The Sixteenth Day
    Study Plan The Thirteenth Day
    Study Plan The Fourteenth Day
    Study Plan The Ninth Day
  • 原文地址:https://www.cnblogs.com/CeasarH/p/9165351.html
Copyright © 2011-2022 走看看