一维数组
形式
/* 形式 */
char cArr[10];//声明一个含十个元素的char数组
初始化
/* 1.指定数组长度 */
char cArr[5] = {'a','b','c','d','e'};//数组全部成员初始化
char cArr2[5] = {'a','b'};//数组部分成员初始化,前两个元素为字符a、b,后三个元素为空
/* 2.不指定数组长度 */
char cArr3[] = {'a','b','c','d'};//数组长度是实际元素个数。Len = 4
char cArr4[] = "wenjinxing";//当以字符串形式对数组初始化时,数组长度为字符个数+1.Len = 11
使用
数组元素通过数组名加下标访问,如arr[3]访问的是数组arr的第4个元素(因数组下标从零开始)。
多维数组
形式
/* 形式 */
char cArr[3][4];//二维数组,可以理解为3行4列共12个元素。也可以理解为含有三个元素的一维数组,每个元素又是含有4个元素的数组
初始化
/* 1.指定数组长度,全员初始化 */
char sArr[2][3] = {'a','b','c','d','e','f'};/* (1)----数组成员全员初始化,[0][0]='a',[0][1]='b',[0][2]='c',
[1][0]='d',[1][1]='e',[1][2]='f'*/
char sArr2[2][3] = {{'a','b','c'},{'d','e','f'}};/* (2)---本例与(1)表达同样的结果 */
/* 2.指定数组长度,部分成员初始化 */
char sArr3[2][3] = {'a','b','c','d'};//(3) ---[0][0]='a',[0][1]='b',[0][2]='c'; [1][0]='d',[1][1]='\0',[1][2]='\0'
char sArr4[2][3] = {{'a','b'},{'c','d'}};//(4) ---[0][0]='a',[0][1]='b',[0][2]='\0'; [1][0]='c',[1][1]='\0',[1][2]='\0'
/* 3.部分指定数组长度 */
char sArr5[][3] = {'a','b','c','d'};//(5) ---[0][0]='a',[0][1]='b',[0][2]='c'; [1][0]='d',[1][1]='\0',[1][2]='\0'
//char sArr6[2][] = {'a','b','c','d'};//(6) 错误语法,不是第一维的长度不能省略。
/* 4.以上数组的输出结果如下: */
【总结】
-
数组下标从0开始,数组元素在数组中所处的位置比下标大1.
-
数组在内存中的位置是连续的。
-
数组初始化时若指定了长度,则所占内存为类型字节数乘以长度;若初始化时未指定长度,则所占内存为 类型字节数乘以实际元素个数。
-
对于未全员初始化的数组,依次将数组元素从左到右赋值给下标由小到大的数组变量。未赋值的数组变量则取默认值(一般整型默认值为0,字符型默认值为空)