二维数组的定义 c 今定义方式 cIoJ1OJ2 数据类型数组名[常量、元素个数一行数c0joI3 c[OIlI c c0][1][2 数组 例inta[3][4] coJ2 ●原 float b[2]5] intc[2][3]4]; cO1212 int a3, 4 c0J23 cl1lOJOT int a32 apoj cccc aO1[1 clI al cl[12 a[O][0]a[O[ a c[[13 alo all a[2][0 c[12J10J c[1][2 a[2]0]a[21[1 a[2][1 [l122 c[l[2[3
1、二维数组的定义 ❖定义方式: 数据类型 数组名[常量表达式][常量表达式]; ❖数组元素的存放顺序 ⚫原因:内存是一维的 ⚫二维数组:按行序优先 ⚫多维数组:最右下标变化最快 例 int a[3][4]; float b[2][5]; int c[2][3][4]; int a[3,4]; () 行数元素个数=行数列数*列数 int a[3][2] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] 0 1 4 5 2 3 a[0][0] a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] int c[2][3][4] 0 1 2 3 4 5 6 7………... 20 21 22 23 c[0][0][0] c[0][0][1] c[0][0][2] c[0][0][3] c[0][1][0] c[0][1][1] c[0][1][2] c[0][1][3] c[0][2][0] c[0][2][1] c[0][2][2] c[0][2][3] c[1][0][0] c[1][0][1] c[1][0][2] c[1][0][3] c[1][1][0] c[1][1][1] c[1][1][2] c[1][1][3] c[1][2][0] c[1][2][1] c[1][2][2] c[1][2][3]
二维数组理解 二维数组a是由3个元素组成 aO][1] a0[2] 例inta[3][4] a0[3] a[o]a[O][0J a[0][1]a[0J[2]a[01[3 5 a[1[1] a[l]2] [1][3 a2|0a[2 行名 a[2][1 10a[2[2] 每个元素a[由包含4个元素 11 a23 的一维数组组成
❖二维数组理解 例 int a[3][4]; 2016 17 2018 19 2020 21 2022 23 2008 9 2010 11 2012 13 2014 15 2000 1 2002 3 2004 5 20006 7 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] 每个元素a[i]由包含 4个元素 的一维数组组成 二维数组 a是由 3个元素组成 a[0] a[1] a[2] 行名 014523 a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[0][0] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] 6 a[1][2] 7 10 1189 a[0] a[1] a[2]
2、二维数组元素的初始化 ●分行初始化: 第一维长度省略初始化 第一维长度省略初始化 例inta[[3]={1,2,3,4,5}; 4 a[0][O]a[0][1]a[0j[2]a[l[0ja[l[la[l[2]
2、二维数组元素的初始化 ⚫分行初始化: 例 int a[2][3]={{1,2,3},{4,5,6}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 6 全部初始化 ⚫按元素排列顺序初始化 例 int a[2][3]={{1,2},{4}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 0 4 0 0 部分初始化 例 int a[][3]={{1},{4,5}}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 0 0 4 5 0 第一维长度省略初始化 例 int a[2][3]={1,2,3,4,5,6}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 6 全部初始化 例 int a[2][3]={1,2,4}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 4 0 0 0 部分初始化 例 int a[][3]={1,2,3,4,5}; a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] 1 2 3 4 5 0 第一维长度省略初始化
例 char name[O 例 char str ello float weight[ 10.3 char strIEf'H int array[-1001; X 例inta[10 0 float 13 a[i1=10; 例 int a[5] a={2,4,6,8,10}; 例 int alll[10 float fl2]={1.2,2,2}; 例比较inta[2[3]={5,6},{7,8} 5758 0070 inta[2][3]={5,6,78} 0
例 比较 int a[2][3]={{5,6},{7,8}}; 与 int a[2][3]={5,6,7,8}; 5 6 0 7 8 0 5 6 7 8 0 0 例 int a[][10]; float f[2][]={1.2 ,2.2}; 例 int a[5]; a={2,4,6,8,10}; 例 int a[10]; float i=3; a[i]=10; 例 char name[0]; float weight[10.3]; int array[-100]; 例 char str[]=“Hello”; char str[]={‘H’,‘e’,‘l’,‘l’,‘o’}; h e l l o 0 1 2 3 4 h e l l o \0 0 1 2 3 4 5
3点款组元素的引用 维数崩悯制挹滅阃燕无贿觋的可以 是整维的粥。第一维下标的范围是0、1、 2…第一益[卡标集擦是]1、2.…第二维 长度-1。 在引用每一个数组元素时下标表达式的值不能越界! ②虽然二维数组是特殊的一维数组,是元素为一维数 组的一维数组,但并不能引用数组的行或列。只能引用单个 是数组元素。 ③二维数组元素的表示方式不能写为如b[1,2]、 b[2],[0]、b(1,2)、b(3)(1)的形式,而且两个下标之间也 不能有空格
3、二维数组元素的引用 二维数组的访问也是通过访问其元素来实现的。 二维数组的引用方式为: 数组名[下标表达式][下标表达式] 几点注意: ① 二维数组的下标表达式的范围和一维数组类似,可以 是整型的变量、常量、表达式。第一维下标的范围是0、1、 2……第一维长度-1; 第二维下标范围是0、1、2……第二维 长度-1。 在引用每一个数组元素时下标表达式的值不能越界! ② 虽然二维数组是特殊的一维数组,是元素为一维数 组的一维数组,但并不能引用数组的行或列,只能引用单个 是数组元素。 ③ 二维数组元素的表示方式不能写为如b[1,2]、 b[2],[0]、b(1,2)、b(3)(1)的形式,而且两个下标之间也 不能有空格