• 值传递和引用传递02


      让我们再来看有关值传递和引用传递的例子:

                //值传递,传递的是这个值的本身
                int n = 10;
                int m = n;
                m = 40;
                Console.WriteLine(n);   // 10
                Console.WriteLine(m);   // 40
                //引用传递,传递的是对象的引用
                //p1 p2 共同指向了同一个堆上的地址
                //通过p2改变age,p1所指向的age也会跟着改变的
                Person p1 = new Person();
                p1.age = 20;
                Person p2 = p1;
                p2.age = 25;
                Console.WriteLine(p1.age);  //  25
                Console.WriteLine(p2.age);  //  25
                //字符串虽然属于引用类型,但由于它的不可变性
                //在改变s2所指向的内存后,s1所指向的内存不会跟着改变
                string s1 = "dssd";
                string s2 = s1;
                s2 = "rere";
                Console.WriteLine(s1); //   dssd
                Console.WriteLine(s2); //   rere
            
           字符串可以视为一个只读的字符数组,所以不能像int类型数组那样,通过下标来修改数组中元素的值
                //在参数前面加上ref修饰,传递的是参数的地址,值传递变成了引用传递
                int number = 10;
                Fun(ref number);
                Console.WriteLine(number);  //  20
    
            public static void Fun(ref int n) 
            {
                n += 10;
            }
  • 相关阅读:
    js中的this指针(五)
    一个链式调用 setTimeout的例子
    js中的this指针(四)
    js中的this指针(三)
    NOJ 爱过
    Greatest Greatest Common Divisor HD5207
    Greatest Greatest Common Divisor HD5207
    Greatest Greatest Common Divisor HD5207
    Greatest Greatest Common Divisor HD5207
    Four Inages Strateg
  • 原文地址:https://www.cnblogs.com/lcxBlog/p/4884772.html
Copyright © 2020-2023  润新知