总结二维数组的要点如下:
定义
二维数组可以看作是一个矩阵,由行和列组成。
定义格式为:`类型 数组名[行数][列数]`,例如:`int a;` 表示一个3行4列的整数二维数组。
初始化
可以在声明时直接赋初值,例如:`int a = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};`。
也可以部分初始化,未赋值的元素默认为0,例如:`int a = {{1, 2, 3}, {4, 0, 0}, {7, 8, 9}};`。
元素访问
访问二维数组中的元素需要两个索引,分别表示行和列,例如:`a`表示第二行第三列的元素。
行和列的索引都是从0开始的。
内存存储
二维数组在内存中是线性存放的,即先存储第一行的所有元素,然后是第二行的所有元素,依此类推。
每一行的元素在内存中是连续存放的。
遍历
遍历二维数组可以使用两个嵌套的for循环,外层循环遍历行,内层循环遍历列,例如:
```cpp
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
```
边界检查
访问二维数组时要注意下标是否越界,即行下标和列下标是否在有效范围内(0到行数-1,0到列数-1)。
其他
二维数组也可以使用指针来访问,例如:`int* p = a;` 表示指向第二行的第一个元素的指针。
可以使用`vector`容器来创建动态二维数组,例如:
```cpp
include include using namespace std; int main() { vector for (int i = 0; i < v.size(); i++) { for (int j = 0; j < v[i].size(); j++) { cout << v[i][j] << " "; } cout << endl; } return 0; } ``` 通过以上总结,可以更好地理解和掌握二维数组的定义、初始化、访问、遍历以及边界检查等概念。