一维数组:一组能存放元素的数据类型(如int型、float型、char型)
定义:元素类型数组名[ ] = { };
如:int arr[3] = {1,2,3};
数组元素有顺序之分,每个元素下标从0开始,访问时用arr[i]的格式
数组的初始化:
int a[3] = {1,2,3};
int a[3] = {1,2};
int a[ ] = {1,2,3};
[ ]里面的个数必须是一个固定值,可以是常量(比如3、8)、常量表达式(比如3+4、5*7)。绝对不能使用变量或者变量表达式来表示元素个数,大多数情况下不要省略元素个数
(当数组作为函数的形参和数组初始化时除外)
C语言中编译器是不会对数组下标越界进行检查的,所以自己访问数组元素时要注意
一维数组与函数参数:
一维数组的元素作为函数实参,与同类型的简单变量作为实参一样,是单向的值传递,即数组元素的值传给形参,从而形参是改变不影响实参
数组名代表着整个数组的地址,如果一维数组的名字作为函数实参,传递的是整个数组,即形参数组和实参数组完全相同,是存放在同一存储空间的同一个数组。这样形参数组修改时,实参数组也同时被修改了。形参数组的元素个数可以省略
二维数组
定义 : int a[3][3]; 元素类型 数组名[ ] [ ];
这是一个3行3列的二维数组,相当于一个3行3列的矩阵,二维数组可以先将其看为一个一维数组,它有3个元素,每个元素又是包含3个元素的一维数组,在存储时二维数组是以一个个一维数组排成一排存储的,如:
a[0][0] → a[0][1] → a[0][2] → a[1][0] → a[1][1] → a[1][2] → a[2][0] → a[2][1] → a[2][2]
初始化
int a[3][3] = {1,2,3,4,5,6};
int a[3][3] = {{},{},{}};
数组元素的访问
还是数组名加下标的方式,不过下标有两个下标,一个是行下标,另一个是列下标,其它同一维数组没有什么两样