数组:
什么是数组:相同类型的变量的组合,是一种批量定义变量的方式
定义: 类型 数组名[数量];
int arr[5];==int num1,num2,num3,num4,num5
使用:数组名[下标];
下标:从0开始,范围:0~(数量-1)
遍历:与for循环配合使用,使用循环变量 i 当做数组的下标
初始化:类型 数组名[数量] = {1,2,3,4,5…};
1.数组与普通变量是一样默认值是随机,为了安全也要对数组进行初始化
2.这种初始化语法只能在定义数组时使用,而且不能整体赋值
3.如果初始化数据过多,编译器会丢弃,并产生警告
4.如果初始化数据不足,编译器则补0
5.初始化数组时长度可以省略,编译器会自动统计数据的个数,然后高数数组
sizeof(arr)/sizeof(arr[0]) == 数组长度
数组越界:
为了程序的运算效率,不会检查数组的下标
数据越界的后果:
1.一切正常
2.段错误
3.脏数据
二维数组:
一队数据相当于把变量排成一排,通过编号来访问
二维数组相当于把变量排除矩阵,通过行号和列号来访问
定义: 类型 数组名[行数] [列数] ;
int arr[3] [5];
[0,0] [0,1] [0,2] [0,3] [0,4]
[1,0] [1,1] [1,2] [1,3] [1,4]
[2,0] [2,1] [2,2] [2,3] [2,4]
使用:数组名[行下标] [列下标]
行下标: 0~行数-1
列下标:0~列数-1
遍历:需要与双层for循环配合,外层循环负责遍历行,内层循环负责遍历列
初始化: 类型 数组名 [行数] ={{第一行},{第二行},{第三行}}
变长数组:
定义数组时使用变量作为数组的长度,在代码编译期间数组的长度时不确定的,只有当执行到数组定义语句真实,长度才能确定下来。 一旦数组长度确认下来后,不能改变。