二维数组是个啥
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。
百度二维数组 链接放在这里了,自己也可以去康康哟
定义方式
作者熟悉的就是用这种方法了:
差不多就是这样了;
int arr[3][4];//三行四列
// 直接给二维数组赋值
arr[0][0] = 1;
arr[0][1] = 2;
arr[0][2] = 3;
arr[0][3] = 4;
arr[1][0] = 5;
arr[1][1] = 6;
arr[1][2] = 7;
arr[1][3] = 8;
arr[2][0] = 9;
arr[2][1] = 10;
arr[2][2] = 11;
arr[2][3] = 12;
或者:
int arr[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
注意了,这种情况下:
定义的是int arr[3][4]的意思是三行四列,而如果要输出的话,就指定的是下标,下标以零开始,所以输出12,就是输出arr[2][3]了,什么是下标将在后面讲到。
二维数组和一维数组的区别
1.维度差异:一维数组只有一个维度,而二维数组有两个维度,即行和列。
2.声明和访问方式不同:一维数组的声明和访问方式比较简单,可以直接通过数组名加索引的方式进行操作;而二维数组的声明和访问方式需要指定两个索引,即行和列。
3.存储方式不同:一维数组在内存中是连续存储的,每个元素之间没有额外的空间;而二维数组是一维数组的数组,每个一维数组在内存中也是连续存储的。
4.内存占用差异:由于二维数组包含多个一维数组,因此它的内存占用量通常要大于一维数组。
5.灵活性差异:一维数组的长度是固定的,并且元素的个数必须在声明时指定;而二维数组的长度可以在声明后进行动态调整,并且每个一维数组的长度可以不同。
总之,一维数组和二维数组在维度、声明和访问方式、存储方式、内存占用和灵活性等方面都存在差异。选择使用哪种数据结构应根据具体的需求和情况来决定。
大家看到了么,他们一个是线,一个是面。
二维数组的特点
二维数组是由多个一维数组组成的数据结构,它的特点如下:
1. 维度:二维数组有两个维度,通常用行和列表示。每个维度都可以有不同的长度。
2. 存储方式:二维数组在内存中是连续存储的,每个一维数组在内存中也是连续存储的。这意味着二维数组的元素在内存中是按照一定的顺序排列的。
3. 元素访问:二维数组的元素可以通过行和列的索引进行访问。通过指定行和列的索引,可以准确地找到特定的元素。
4. 元素类型:二维数组的元素可以是任意类型的数据,例如整数、浮点数、字符等。
5. 多维数组:二维数组是多维数组的一种特殊情况。除了二维数组之外,还可以有三维数组、四维数组等。多维数组可以理解为一维数组的数组。
6. 灵活性:二维数组的大小可以在声明后进行动态调整。每个一维数组的长度也可以不同,使得二维数组可以灵活地存储不同大小的数据。
需要注意的是,二维数组不同于矩阵,矩阵是一个数学概念,有严格的数学定义和运算规则。而二维数组只是在内存中按照一定方式存储的数据结构,没有矩阵的特定性质和运算规则,并且二维数组与一维数组的下标特点一样,都是从零开始的。
附一张六行八列的下标
明式图:
更多练习题,请搜索C++二维数组-CSDN博客 ,拜了个拜~