62二维數组 例如有一个3*4的矩阵a: a00a01a02a03 a=a10a11a12a13 a20a21a22a23 a21元素在数组中的位置是2*4+1=9。即它在数 组中是第9个元素。对一个a;元素(在C++语言中表 示为a[订]订),在它前面有i行(对a21来说它前面有 两个整行),这i行共有i*n个元素。在a所在行中, au;前面还有个元素,因此在数组a中前面共有 i*n+j)个元素。那么a航是第(i*n+)个元素, 计算方法是从0开始的。 心
例如有一个3*4的矩阵a: a00 a01 a02 a03 a= a10 a11 a12 a13 a20 a21 a22 a23 a21元素在数组中的位置是2*4+1=9。即它在数 组中是第9个元素。对一个aij元素(在C++语言中表 示为a[i][j]),在它前面有i行(对a21来说它前面有 两个整行),这i行共有i*n个元素。在aij所在行中, aij前面还有j个元素,因此在数组a中aij前面共有 (i*n+j)个元素。那么aij就是第(i*n+j)个元素, 计算方法是从0开始的。 6.2 二维数组
621二维飘组初始化 二维数组初始化: 和一维数组一样,二维数组也能在定义时被初始 化,只是要注意必须按照前面所讲的存储顺序列出数 组元素的值。常见有如下一些初始化方式: (1)分别对各元素赋值,每一行的初始值用一对花 括号括起来。例如: inta[2][3]={{1,2,3},{45,6}}; 将第一对花括号内的三个初始值分别赋给a数组 第一行三个元素,第二对花括号内的三个初始值赋给 第二行元素。数组中各元素为: 123 456 心
6.2.1 二维数组初始化 二维数组初始化: 和一维数组一样,二维数组也能在定义时被初始 化,只是要注意必须按照前面所讲的存储顺序列出数 组元素的值。常见有如下一些初始化方式: (1)分别对各元素赋值,每一行的初始值用一对花 括号括起来。例如: int a[2][3]={{1,2,3},{4,5,6}}; 将第一对花括号内的三个初始值分别赋给a数组 第一行三个元素,第二对花括号内的三个初始值赋给 第二行元素。数组中各元素为: 1 2 3 4 5 6
621二维數组初始化 (2)将各初始值全部连续地写在一个花括号内,在 程序编译时会按内存中排列的顺序将各初始值分别赋 给数组元素。例如 inta[2][3]={123456} 数组中各元素为: 123 456 (3)只对数组的部分元素赋值。例如: inta[2j[3]={1234} 数组共有6个元素,但只对前面4个元素赋初值 后面两个未赋初值,其值为0。数组中各元素为 123 400 心
6.2.1 二维数组初始化 (2)将各初始值全部连续地写在一个花括号内,在 程序编译时会按内存中排列的顺序将各初始值分别赋 给数组元素。例如 int a[2][3]={1,2,3,4,5,6}; 数组中各元素为: 1 2 3 4 5 6 (3)只对数组的部分元素赋值。例如: int a[2][3]={1,2,3,4}; 数组共有6个元素,但只对前面4个元素赋初值, 后面两个未赋初值,其值为0。数组中各元素为: 1 2 3 4 0 0
621二维數组初始化 (4)可以在分行赋初值时,只对该行中一部分元 素赋初值,例如 static int a[2][3]=tf1 23r411i 对第一行中的第一、二列元素赋初值,而第三个 元素未赋初值。第二行中只有第一列元素赋初值 数组中各元素为: 120 400 心
6.2.1 二维数组初始化 (4)可以在分行赋初值时,只对该行中一部分元 素赋初值,例如: static int a[2][3]={{1, 2},{4}}; 对第一行中的第一、二列元素赋初值,而第三个 元素未赋初值。第二行中只有第一列元素赋初值。 数组中各元素为: 1 2 0 4 0 0
622二维组省暗定义 省略第一维大小定义: 若在定义数组时给出了全部数组元素的初值,则 数组的第一维下标可以省略,但第二维下标不能省略 例如:下面两种定义方式等价: static int a[2][3]=11,2, 3,4,5, 6]i static int a[][3]=1,2, 3, 5,61i 编译器会根据元素的总个数分配空间,每行3列, 共6个元素,故该数组行数为6/3=2行。 但上例不能写成: static int a[2][]=<1,2, 3,4,5,61i 心
6.2.2 二维数组省略定义 省略第一维大小定义: 若在定义数组时给出了全部数组元素的初值,则 数组的第一维下标可以省略,但第二维下标不能省略。 例如:下面两种定义方式等价: static int a[2][3]={1,2,3,4,5,6}; static int a[ ][3]={1,2,3,4,5,6}; 编译器会根据元素的总个数分配空间,每行3列, 共6个元素,故该数组行数为6/3=2行。 但上例不能写成: static int a[2][ ]={1,2,3,4,5,6};