• 值类型和引用类型


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace 值类型_引用类型
    {
    public class Person
    {
    public string name;
    }
    class Program
    {
    static void Main(string[] args)
    {
    //值类型
    //定义两个变量
    int a;
    int b;
    //给第一个变量赋值
    a = 3;
    //给第二个变量赋值
    b = a;
    //改变第二个变量
    b += 2;
    //输出变量
    Console.WriteLine("a的值:"+a);
    Console.WriteLine("b的值:"+b);

    //引用类型
    //定义两个变量
    Person p1;
    Person p2;
    //给第一个变量分配空间
    p1 = new Person();
    p1.name = "张三";
    //让第二个变量等于第一个变量
    p2 = p1;
    //改变第二个变量
    p2 .name= "李四";
    Console.WriteLine("p1"+p1);
    Console.WriteLine("p2"+p2);
    }
    }
    }

    引用类型:

    堆内存 需要手动用new关键字开辟空间,在一个堆内存中声明两个变量是使用同一个内存中的数据;

    值类型:

    栈内存 系统为每个变量自动开辟新的空间

    值类型变量互相赋值之后,对两个变量的任何操作都不会互相影响,以为他们有各自独立的存储空间,操作的是两个不同的数据。

    引用类型互相赋值之后,他们共用一个空间内的数据,所以会互相影响。

  • 相关阅读:
    关键字--super
    JSP学习笔记3--指令元素
    JSP学习笔记2--JSP基本元素
    力扣233.数字1出现的次数
    JSP学习笔记1
    继承
    Cocos2dx-Lua中Sprite精灵的3种创建方法
    cocos2dx Action动作 (3)CCSkewTo、CCSkewBy
    cocos2dx Action动作解析(2)
    cocos2dx Action动作解析(1)
  • 原文地址:https://www.cnblogs.com/jc-1997/p/6044445.html
Copyright © 2020-2023  润新知