5.3二维数组与多维教组 colloSol ★二维教组的定义 的图 c|0o0121 c003 令定义方式 数据类型数组名常量袭达北常釐表达式2;c c|0112 例inta3[2]; c|01|3 02 今数组元素的存放顺序 c|01212 ●原因:内存是一维的 c|0|23 c[10J[01 二维数组:按行序优先、最右下标变化最快 int a 3 2 a010 c103 a00 a 0J1 a10 a[ll1 a20]a[2|1l 012345 c[1[J12 20 2|012 c[1|2|0 25 a 2ll 22 23 f2 3
25 二维数组的定义 ❖定义方式: 数据类型 数组名[常量表达式1][常量表达式2]; ❖数组元素的存放顺序 ⚫原因:内存是一维的 ⚫二维数组:按行序优先、最右下标变化最快 例 int a[3][2]; 行数元素个数=行数列数*列数 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] 5.3 二维数组与多维数组
二维教组理解 aJ[]0] 二维数组a是由3个元素组成 Ia[011] a[O[2 例inta[3]4]; 3 a[0][3] a[la[1][oja[1][1] a[1j[2]a[1][3] a[1[2] a[2a[210l a[211lla[2][21a[21[3 7a[13 a[2][0 行名 (2jl1] a2121 每个元素a[i由包含4个元素 a[2][3 的一维数组组成 26注意:是二维数组的名字,a等也是一维数组的名字
26 例 int a[3][4]; 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] 行名 0 1 4 5 2 3 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 11 8 9 a[0] a[1] a[2] 二维数组理解 注意:a是二维数组的名字,a[0]等也是一维数组的名字
5.3.3二维数组的初始化 二维数组可按行分段赋值,也可按行连续赋值 行与行之间用{}括起来,用,分隔。 按行分段赋值可八 每一行的元素之间用,分隔开。 inta2|3]={80,75,92,{61,65,71l} 2.按行连续赋值可写为(内存存放) nta23J={80,75,92,61,65,71}; 这两种赋初值的结果是完全相同的 27
27 二维数组可按行分段赋值,也可按行连续赋值。 1. 按行分段赋值可写为 int a[2][3]={ {80 , 75 , 92 },{ 61 , 65 , 71 } } 2. 按行连续赋值可写为(内存存放) int a[2][3]={ 80,75,92,61,65,71 }; 这两种赋初值的结果是完全相同的。 5.3.3 二维数组的初始化 行与行之间用 { }括起来,用,分隔。 每一行的元素之间用,分隔开
可以给部分元素赋值,其它元素默认0值。<部分初始化 例inta[23={{1,2},{4}; 2 0 a00]a0{1a|0[2Ja[lj0aIl[1]a112 连续赋值也可以部分初始化 例inta2|3}={1,2,4}; 2 0 a010 aoli a[02 allo a[llll a[l2 28
28 例 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[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 连续赋值也可以部分初始化 可以给部分元素赋值,其它元素默认0值
完全赋值时,第一维的下标可以省略,不能省略。 第二维的下标不能省略! 第一维长度省略初始化一 例inta[]3}={{1},{4,5}}; a00] ao1 a 2 a[10 alll a[l2 第一维长度省略初始化 例inta[[3|={1,2,3,4,5} 3 29 a010 aj0l1 a[02 alo all a[12]
29 例 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[ ][ 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 第一维长度省略初始化 完全赋值时,第一维的下标可以省略,[ ]不能省略。 第二维的下标不能省略!