)
一、数组基础理论数组也是一种数据类型可以解决大量变量的定义问题数组数组是有序数据的集合,可以批量定义多个变量数组要解决的数据的特点它们都是同一类型的数据一维数组整型字符型二维数组整型字符型一维数组的定义方式为类型说明符 数组名 [常量表达式]1 2 3说明1类型说明符----用来说明数组中变量的类型int\float\char2数组名----代表的是一组变量的集合,标识符起名字的规则和变量名命名规则一致2[常量表达式]----- []表示定义的是一个数组-----数组的长度、数组中变量的个数注意常量表达式为整型C99 标准之后不要求必须是常量也可以是变量eg:int score[1000](表示定义了一个int型的数组每个变量都是int类型)总共1000个变量数组定义1.数组定义本质上是定义了多个变量eg. int score[1000];//表示一次性开辟了1000个int型变量的空间数组的初始化和赋值//全部初始化int a[10] {1,2,3,4,5,6,7,8,9,10}数组元素的引用a数组名---找到了这个10个变量的集合引用时请说明一下引用的是那个具体的变量语法数组名[下标]此时是一个运算符下标的取值范围为0~数组长度-1注意1.数组空间的大小2.数组也是一种数据类型int a[10];int a; //a是什么类型--a是int类型//判断一个标识符的数据类型int [10] //数组类型//表示10个int型的数组3.数组名代表数组对应的数据类型就是数组类型4.数组的特点1.连续性//一片连续空间2.单一性//数组中存放的是同一类型的数据3.有序性//第一个元素后面就是第二个5.数组名类型角度数组名代表了对应的数组类型数值角度数组名代表的是数组首元素的地址6.下标相对于首元素的偏移量下标 取值范围 [0~数组长度-1]下标不在合法范围之内则表示数组越界数组越界这个问题 编译器不会帮我们检查程序员自己小心7.注意 数组不能整体赋值下面的写法不对:int a[10];a {1,2,3,4,5,6,7,8,9,10}; //不对数组不能整体赋值注意数组的初始化 和 赋值://全部初始化int a[10] {1,2,3,4,5,6,7,8,9,10};//部分初始化 ---值依次给到前面的元素后面未初始化的元素 默认给0int a[10] {1,2,3,4,5};//不初始化 --- 数组中是随机值(垃圾值)int a[10];//初始化成0int a[10] {0};int a[10] {}; //{} 初始化器 ---表示就是进行初始化 默认给0//初始化时 数组长度可以省略 注意:长度可以省略但是必须有对应初始化的值int a[] {1,2,3,4};//数组最终长度 --- 有初始化值个数来推算赋值://赋值运算 --- 要给到数组中具体的元素而不是整个数组int a[10];a[0] 2;如果都给到则可以配合for循环排序排序算法1.选择排序2.冒泡排序3.插入排序4.快速排序指针选择排序核心思想给合适的位置选择合适的数算法实现步骤位置-----下标表示位置确定0号位置找最小值算法实现步骤1.外层循环控制要找的位置2.里层循环控制要找的数min a[0];for(j 0;jlen;j);{if (a[j] min){jiaohuan;}}for()