目录
1.变量类型的复习
2.值类型和引用类型的区别
1.变量类型的复习
①无符号整形
byte b=1;
ushort us=1;
uint ui=1;
ulong ul=1;
②有符号整形
sbyte sb=1;
short s=1;
int i=1;
long l=1;
③浮点数
float f=1f;
double d=1.1;
decimal de=1.1m;
④特殊类型
bool bo=true;
char c='A';
string str="strs";
⑤复杂数据类型
⑥enum枚举
⑦数组(一维,二维,交错数组)
我们将以上的类型分为值类型和引用类型:
引用类型:string,数组,类
值类型:结构体,其他;
2.值类型和引用类型的区别
①使用上的区别
//值类型
int a=10;
//引用类型
int[] arr2=new int[] {1,2,3,4};
//声明了一个b让其等于之前的a
int b=a;
//声明了一个arr2让其等于之前的arr
int[] arr2=arr;
Console.WriteLine("a={0},b={1}",a,b};
Console.WriteLine{"arr[0]={0},arr2[0]={1}",arr[0],arr2[0]);
b=20;
arr2[0]=5;
Console.WriteLine("修改了b和arr2[0]之后");
Console.WriteLine("arr[0]={0},arr2{0}={1}",arr[0],arr2[0]);
②为什么会有以上区别?
值类型在相互赋值时,把内容拷贝给了对方,它变我不变。
引用类型的相互赋值时,是让两者指向同一个值,它变我也变。
注意:直接改元素和new一个新数组是有区别的,new就是新开一个房间,如下:
arr2=new int[]{99,3,2,1};
Console.WriteLine("arr[0]={0},arr2[0]={1}",arr[0],arr2[0]);