一)二维数组可以看做一个特殊的一维数组,这个一维数组的每个元素又是一个一维数组的定义 数据类型 数组名[第一位数组的长度行][第二维数组的长度列]; Inta[2][3]; 理解方法; 1)这是一个特殊的一维数组,一维数组有两个元素 a[0]a[1] A[0]它的长度是3 2) 数组长度可以使用宏定义
二)二维数组的初始化 1)定义的同时初始化 1)完全初始化 Int a1[2]={1,2};
//1特殊的一维数组,第一维有两个元素 Int a[2][3]={{12,34,45},{23,45,13}}//分段初始化
//2连续赋值 Int a[2][3]={1,2,3,4,5,6};
//3可以省略第一维 Int a[][3]={{1,2,3},{3,4,5},{4,3,2}};//三行三列 Int a[][2]={1,2,3,4,5,6,7,8}//四行两列
2)部分初始化 Int a[3][4]={1};//第一个是1,后面全是0,一般情况下我们给数组初始化为0
Int a[3][4]={{1},{2},{3}} 1 0 0 0 2 0 0 0 3 0 0 0//注意这种写法,第一位长度可以省略
Int a[3][4]={1,2,3,4,5}; 1 2 3 4 5 0 0 0 0 0 0 0 //省略第一维
2)先定义,后初始化 Int a[3][4]; 第一维下标:0,1,2 第二维下标:0,1,2,3 A[0][0] = 1;
注意: 1)第一维可以省略 2)第二维不能省略 3)如果定义a[3][3],调用时是a[3][3],的话就是越界了,因为都是从0开始的
三)二维数组的遍历 二维数组的遍历 访问二维数组的每一个元素
如何访问? 通过下标来访问 Inta[3][4];
------------------------------------------- 0| 00 01 02 03 1| 10 11 12 13 2| 20 21 22 23
二维数组的每一个元素都是一个双下标变量
二维数组占用的总字节数 1)种植结束 = 每行占用的字节数之和 2)总字节数 = 元素的个数 * 元素类型 3)总字节数 = sizeof(数组名); =行 * 列 * sizeof(数组类型) 通过数组名计算数组占用的总字节数
列数=行的总字节数/每个元素占用的字节(数组类型)
行数=总字节数/每行字节数
|