数组
数组种类:一维数组、二维数组、交错数组
数组:就是用来储存一堆相同类型的数据的容器。
内存分配:数组创建时会在堆内存中开辟连续的n个空间。
数组下标从0开始:new数组在堆中开辟了连续的n个空间,为了方便寻址所以从0开始。
1数组在实例化的时候,必须指定容量(大小)
2数组一旦创建完毕,容量就不再容许修改,因为如果中间某块内存空间已经被别的对象占用,那么,
数组长度不能被修改的根本原因是:
创建数组是在堆内存中开辟连续的几块空间,数组访问时通过第一个数组元素地址+下标的方式算出来的,如果修改数组长度,那么久必须为数组添加新的空间,但是新空间的前面可能已经由别的程序占用了几块空间,那么数组的空间就不连续了。
使用初始化器创建数组对象:编译后仍然是new 的方式->new string[]{“123”,”362”}
常用方法:Clone()克隆一个新的一样的数组
拷贝旧数组到新数组 arrOld.CopyTo(arrNew,0)
二维数组声明:string[,] arrStus=new string[5,9];
arrStus.Length 获得二维数组的元素
arrStus.GetLength(0) 获得1维数的长度
交错数组:数组的数组。
本质:就是一个数组,只不过它的元素也是数组;
声明创建:int[][]=new [3][]; 创建的时候其实就是创建一个数组,[]只不过是声明数组里面存的是数组。
数组默认初始化值 string:空字符null int :0
数组冒泡排序、二分查找
一维数组、语法:int[] arr=new int[]{1,2,3,4};
二维数组、 int[,] arr=new int[2,3]; int[,] arr={{1,2,3},{4,5,6}};
交错数组 int[][] arr=new int[3][]; int[][] arr={new int[] {1,2},new int[]{3,4}};