值类型和引用类型

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关键字开辟空间,在一个堆内存中声明两个变量是使用同一个内存中的数据;

值类型:

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

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

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

原文地址:https://www.cnblogs.com/jc-1997/p/6044445.html