05_数组

Posted zhenxin0101

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05_数组相关的知识,希望对你有一定的参考价值。

二维数组

一 定义和初始化

    // 元素类型 数组名[行数][列数];
// 定义了一个元素类型为 int 类型,数组名为 arr2 ,3行4列的二维数组
int arr2[3][4];
?
// 初始化
// 按行初始化
int arr3[3][4] = {
{0,1,2,3},
{10,11,12,13},
{20,21,22,23}
};
// 某些元素不给初值
int arr4[3][4] = {
{ 0, 1, 2},
{ 10, 11 },
{ 20 }
};
// 连续初始化
int arr5[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 };
// 某些元素不给初值
int arr6[3][4] = { 0, 1, 2, 10, 11, 20 };
?
// 一维数组在定义的同时初始化可以不写数组长度
// 二位数组在定义的同时初始化可以不写行数 但是列数一定要写
// 此时行数 根据初始项的数量(N)来确定 N/列数 12/4 == 3行
int arr7[][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 };
// 此时行数 根据初始项的数量(N)来确定 N/列数 10/4 == 3行
// 此时 因为是3行 所以最后两个元素默认值为0
int arr8[][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21 };
?
int arr9[][4] = {
{ 0, 1, 2, 3 },
{ 10, 11, 12, 13 },
{ 20, 21, 22, 23 }
};
int arr10[][4] = {
{ 0, 1, 2 },
{ 10, 11 },
{ 20 }
};
?
// 字符数组
char ch1[][10] = {
"gudlk",
"giua",
"ghjjkg"
};
?

二 内存

1 二维数组的内存也是连续的
2 总内存 == 单个元素所占内存大小 * 元素个数
3 二维数组也是数组
4 二维数组组的每一行可以看作一个一维数组

三 访问

一) 下标访问

1 数组下标从0开始
    int arr3[3][4] = {
{0,1,2,3},
{10,11,12,13},
{20,21,22,23}
};
cout << arr3[1][3] << endl; // 13

二) 指针访问

  ps:见后续博文

四 赋值

    // 按行初始化
int arr3[3][4] = {
{0,1,2,3},
{10,11,12,13},
{20,21,22,23}
};
cout << arr3[1][3] << endl; //13
arr3[2][3] = 56; //给单个元素赋值
cout << arr3[2][3] << endl; //56
?
int arr2[3][4];
// 给所有元素赋值
// 通过循环遍历到每一个元素逐个赋值
for (int i = 0; i < 3; i++)//行
{
for (int j = 0; j < 4; j++)//列
{
arr2[i][j] = i * 10 + j;
}
}
// 打印数组
for (int i = 0; i < 3; i++)//行
{
for (int j = 0; j < 4; j++)//列
{
cout << arr2[i][j] << " ";
}
cout << endl;//打印完一行后换行
}

 

五 应用(推箱子)

  ps:实例见后续博文

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于05_数组的主要内容,如果未能解决你的问题,请参考以下文章

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

Alamofire 文件上传出现错误“JSON 文本未以数组或对象开头,并且允许未设置片段的选项”

VSCode自定义代码片段—— 数组的响应式方法

VSCode自定义代码片段10—— 数组的响应式方法

如何在 python 中并行化以下代码片段?

android在特定片段中隐藏工具栏