栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

二维数组-(C语言)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二维数组-(C语言)

二维数组 二维数组声明



每一个二维数组其实都可以被看作由特定数量的一维数组组成。我们可以通过如的形式进行声明。
在声明二维数组时,我们在第一个方括号内写的数字可以被视为一维数组的个数(如这里的),我们也可以称之为二维数组的“行数(number of rows)”;我们在第二个方括号内写的数字可以被视为是每个一维数组内的元素个数(如这里的),我们也可以称之为二维数组的“列数(number of columns)”。
我们在访问数组元素时,方括号内写的数字分别表示数组中的元素在行和列的编号,也可以称为“行索引”、“列索引”。
对于图上的这个二维数组,访问它的元素也需要分别说明在行、列上的索引,在二维数组matrix[2][3]中的元素,可以通过matrix[0][0],matrix[0][1], matrix[0][2], matrix[1][0], matrix[1][1], matrix[1][2] 进行访问。

二维数组初始化



二维数组和一维数组一样,也可以在声明的时候完成初始化过程。只不过,二维数组的初始化会有两层大括号,外层的大括号包裹了多组逗号分隔的内层大括号,每个内层大括号包裹了对应行的一维数组元素,两两元素之间用逗号进行了分隔。

int matrix[2][3] = {{2,4,5},
					{4,7,9}};
二维数组元素访问



二维数组在内存中是连续存储的。从matrix[0][0]开始,内存中在它之后紧接着的是元素matrix[0][1]的空间,再之后是元素matrix[0][2]的空间;在所有matrix[0][?](问号表示任何可能的索引)的空间之后,紧接着的就是matrix[1][?]的元素所占的内存空间,依次被matrix[1][0],matrix[1][1],matrix[1][2]所占用。
从内存的角度来看,我们也可以将二维数组看作一种被分隔过的特殊一维数组,这个特殊的一维数组内的元素也为一维数组。我们也是可以通过地址上运算访问二维数组中的元素的。

二维数组输出

我们可以看到,在已经给出的代码中,现在声明并初始化了一个叫做matrix 的 二维数组,它有 3 行、5列。
在这一节,我们将依次读取二维数组的所有元素,并按行输出。我们已经知道,二维数组的每个元素都会有行索引和列索引。现在,已经给出了行索引的循环,使用变量i, 令i 依次为 0 到 2 ,你需要在这层for 循环内再写一层for 循环, 用于列索引的循环,对应使用变量j, 令j 依次为 0 到 4. 请写下:

for(j = 0; j < 5;j++) {

}

接下来,让我们在内循环中输出 第 i 行、 第j 个元素(请用 %d 作为格式)。并在内循环结束后(也就是一行输出完成时),输出n 用于换行。
执行,然后成功输出了这个 3 * 5 的二维数组。

#include 

int main() {
   int i;
   int j;

   int matrix[3][5] = {
       {1, 2, 3, 4, 5},
       {9, 8, 10, -2, -4},
       {7, 6, -3, -1, -5}
   };

   for (i = 0; i < 3; i++) {
       for (j = 0; j < 5; j++) {
           printf("%d ", matrix[i][j]);
       }
       printf("n");
   }

   return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/920712.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号