二维数组的元素访问,及“增”、“删”、“查”、“改”的简单介绍
注意事项:
1、对于二维数组来讲,无论是查找、修改都要在数组范围内进行,决不能越界,这一点和一维数组一样。
2、在初始化二维数组时,也可以用一个 0 初始化,其后所有位置由 0 补齐。
3、二维数组也是一个静态数组,即:初始化后不能再次修改数组的长度,因此在使用前要确定好数组的行、列数量。
二维数组的访问
列索引值
0 1 2
00 0 0 1 0 2
行索引值 11 0 1 1 1 2
22 0 2 1 2 2
二维数组访问元素是通过 2 个索引号进行读取的,如:arr[ 0 ][ 0 ],这就是读取以上阵列中左上角的存储值,如果arr [ 2 ][ 2 ],则是读取右下角的值,以此类推。
二维数组的遍历
二维数组通常使用“ for循环 嵌套 for循环 ” 的方式进行数组的遍历,主要因为是二维数组有 2 个索引值,for循环中自带 1 个可以自增的变量,如果使用 2 个就可以很好的和二维数组的 2 个索引值进行匹配,并且完全符合二维数组的输出特点,如下:
依此阵列为例,我们创建一个二维数组
#include <iostream>
using namespace std;
int main()
{
int arr [ 3 ] [ 3 ] = { 1,2,3,
4,5,6,
7,8,9 };
// 上面声明了一个 3 行 3 列的数组,如果我们输入索引号为:arr [ 0 ][ 0 ],则输出值为:1
//如arr [ 2 ][ 0 ],则输出值为:7,即:2行,0列;
//arr [ 1 ][ 2 ],则输出值为:6,即:1行,2列;
// 还是老问题如果索引值非常大我们就不能使用这种方式输出了,就要使用 for_for 方式
// 首先我们先计算二维数组的行数、列数,如下:
int hang = sizeof(arr)/ sizeof(arr[ 0 ]); // 获取数组行数
int lie = sizeof(arr[ 0 ]) / sizeof( int ) ; // 获取数组列数
// 双层for循环,先执行外层for,再进内部for,内部for循环执行完毕,再返回到外部for循环
for( int i = 0; i < hang; i++)
{ // 程序首次执行,此时 i 的值为 0 ,向下执行内部for,执行完则 i++ ,然后判断
for( int j = 0; j < lie; j++)
{ // 进入内部for,此时 i 是 0 ,j 是 0,因此下方输出值为:1
// 判断条件后,满足 j < lie 时,此时 i 是 0,j 是 1,输出:2
// 判断条件,此时此时 i 是 0,j 是 2,输出:3
cout <<arr[ i ][ j ]<< " ";
// 执行完输出操作后,执行 j++,再进行条件判断,满足则循环,不满足结束循环
}
cout << endl; // 进行换行操作,然后回到外部 for 进行循环操作
}
}
输出:1 2 3
4 5 6
7 8 9 i j i j i j
整个流程中,索引号的变化,从左到右、从上到下,就是:0 0 | 0 1 | 0 2
1 0 | 1 1 | 1 2
2 0 | 2 1 | 2 2