值类型与引用类型
- 值类型
- int float double bool char 都是值类型
- 值类型的值存储在内存的栈中
- int 类型间变量传值
- int a = 10; int b = a;
- 此时单独修改b的值,a的值不会改变,这种传递叫值传递。
- 这时变量传递是拷贝一个具体的值给对方。
- 引用类型
- 数组 字符串
- 引用类型的值存储在内存的堆中
- int 类型数组间变量传值
-
此时单独修改intB中元素的值,intA的值也会改变,这种传递叫引用传递。
int[] intA = new int[] { 111, 222, 333, 444 }; int[] intB = intA; intB[0] = 100; foreach(int i in intA) { Console.WriteLine(i); } Console.WriteLine("-----------------------------"); foreach(int j in intB) { Console.WriteLine(j); } Console.ReadKey();
-
-
这时变量传递是拷贝一个地址给对方。
数组的内存结构
- 数组在内存中是一块连续的存储空间存储的。
- 最低的地址对应第一个元素,最高的地址对应最后一个元素。