1.数组:
数组本身是一种构造数据类型,主要将相同类型的变量集合起来,用一个名称来代表。
数组也是一种自定义类型,使用之前要先定义,以便编译程序能分配内存空间供程序使用。
2.一维数组定义的一般形式:
类型名 数组名[数组长度];
1)类型名指定数组中每个元素的类型;
2)数组名是数组变量的名称,是一个合法的标识符;
3)数组长度是一个整型常量表达式,设定数组的大小。
3.一维数组的引用:
一维数组的引用方式:
数组名[下标表达式]
这里下表表达式可以是任何非负表达式,包括整型变量,整型常量,含有运算符的整型表达式,以及返回值为整数的函数调用。
引用数组元素时应注意以下几点:
1)由于数组元素与同一类型的简单变量具有相同的地位和作用,因此对变量的任何操作都适用于数组元素。
2)在引用数组元素时下表可以是整型常数或表达式,表达式内允许变量存在。
3)引用数组元素时下表最大值不能越界。
4)C语言中一般与逐个地使用下表变量来引用数组元素。
5)数组是用下标访问的,数组的起始位置为0。
6)数组的长度可以计算。
4.一维数组的初始化
一维数组的初始化形式:
类型名 数组名[数组长度]={初值表}
初值表中依次放着数组元素的初值。
1)完全初始化:定义时给所有元素赋值
int a[5] = {1, 2, 3, 4, 5};
2)不完全初始化:定义时只给部分的元素赋值
int a[5] = {1,2};
这种方法只给部分的元素赋值,未赋初值的系统会为默认为其赋初值为0。
注意:定义数组一定要为其赋初值,不能a[5] = {};,只有一个大括号,系统会随机为其赋垃圾值,会导致程序出现不必要的错误。
大括号中最少要写一个数。比如:int a[5]={0};此时系统默认全部赋0值
如果定义数组时就给数组中所有元素赋初值,那么就可以不指定数组的长度,因为此时元素的个数已经确定了。
5.二维数组定义的一般形式:
类型名数组名[行长度][列长度];
说明:
(1)与一位数组相同,下标只能是整数,并且从0开始
(2)计算机中二维数组是按行优先存储的。
6.二维数组的引用:
C语言中规定不能引用整个数组,只能逐个引用数组元素。
二维数组的引用形式:
数组名 [行下标][列下标];
7.二维数组的初始化:
二维数组元素初始化的四种形式:
1)按行对二维数组赋初值,将每一行元素的初值用一对花括号括起来。
int x[3][3]={{1,2,3},{2,3,4},{3,4,5}}
2) 根据该数组的元素个数,吧初始化数据全部扩在一个花括号内,由二维数组按行存储的规则一次赋值给数组对应的元素。
int x[3][3]={1,2,3,2,3,4,3,4,5};
3) 对部分数组元素赋初值
int x[3][3]={{1,2,3},{2,3,4},{3,4,5}};
4) 在二维数组元素初始化是可以省略第一维的长度,但必须制定第二维的长度。第一维的长度有系统根据初始值表中的初值个数来确定。
int x[][3]={1,2,3,2,3,4,3,4,5};