当前位置: 首页 > news >正文

二维数组的学习

前言

        在前面我们学习了一维数组,但是有的问题需要用二位数组来解决。

        二维数组常称为矩阵,把二维数组写成行和列的排列形式,可以有助于形象化的理解二维数组的逻辑结构。

一、二维数组的定义

        二维数组定义的一般格式:

        数据类型 数组名[常量表达式1] [常量表达式2]

        例如:int a[4][10];

        a数组实质上是一个有4行、10列的表格,表格中可储存40个元素。第1行第1列对应a数组的

a[0][0],第n行第m列对应数组元素a[n-1][m-1]。

        在C语言中,二维数组中元素的排列顺序是按行排放的,即在内存中先顺序存放第一行的元素

接着存放第二行的元素......

二、二维数组的引用

        二维数组的数组元素引用与一维数组元素引用类似,区别在于二维数组元素的引用必须给出

两个下标。

        引用的格式为:

        数组名 [下标1] [下标2]

       例如:int a[3][5]

       则表示a是二维数组(相当于一个3*5的表格),共有3*5=15个元素,它们是:

       a[0][0]  a[0][1]  a[0][2]  a[0][3]  a[0][4]

      a[1][0]  a[1][1]  a[1][2]  a[1][3]  a[1][4]

      a[2][0]  a[2][1]  a[2][2]  a[2][3]  a[2][4]

      因此可以看成一个矩阵(表格),a[2][3]即表示第3行第4列的元素。

三、二维数组的初始化

1.全部赋初值

        int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};

        第1个括号是第1行的数据,第2个括号是第2行的数据,第3个括号是第3行的数据。

        int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

        这写法与上面的表达效果一样,但是还是第一种方法好,界限清除。

2.部分赋初值

         int a[3][4]={{1},{5},{9}};相当于:

        int a[3][4]={{1},{0,5},{1,1,9}};相当于: 

        int a[3][4]={{1},{0},{1,1,9}};相当于: 

3.特殊赋初值

        int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};

        int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};

        这两种定义方式等价,系统会自动通过总个数和第二维的长度算出第一维的长度。

四、二维数组程序例子

        将一个二为数组的的行与列的元素互换,存到另一个二维数组中。

#include<stdio.h>
int main()
{int a[2][3]={{1,2,3},{4,5,6}};int b[3][2];int i,j;printf("array a: \n");for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}printf("array b: \n");for(i=0;i<=2;i++){for(j=0;j<=1;j++){printf("%5d",b[i][j]);}printf("\n");}return 0;
}array a: 1    2    34    5    6
array b:1    42    53    6
PS C:\csay\cyuyan> 

        可以定义两个数组,数组a为3行2列存放指定的六个数,数组b为3行2列,开始时未赋值,只

要a数组中的元素a[i][j]存放到b数组中的b[j][i]元素就可以了,用嵌套的for循环可完成此任务 。

http://www.lryc.cn/news/290506.html

相关文章:

  • Java集合(List集合)
  • 7、Json文件的操作总结【robot framework】
  • python 循环解压 解压多重压缩包
  • 基于C#制作一个连连看小游戏
  • Android-System 根据包名查找已安装应用apk方法
  • 洛谷-P4124题-手机号码-Java
  • 仅使用 Python 创建的 Web 应用程序(前端版本)第08章_商品详细
  • Stable Diffusion 长视频真人动画风格互转
  • 精要图示:园区金融数字化服务蓝图,以园区为支点推动信贷业务增长
  • 2024 中国(南京)国际口腔设备器械博览会
  • 【MyBatis】快速入门MyBatis(保姆式教学),你值得一看
  • git pull代码时候报错:error: cannot open .git/FETCH_HEAD: Permission denied
  • shell - 正则表达式和grep命令和sed命令
  • datawhale 大模型学习 第十二章-大模型环境影响
  • Qt WebEngine模块使用(开发环境安装和程序开发)
  • 网络体系结构 和网络原理之UDP和TCP
  • 将Android APP安装到sm8550 HDK的NVMe SSD
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • Linux:进度条的创建
  • treeview
  • Android开发中自定义View实现RecyclerView下划线
  • MySQL前百分之N问题--percent_rank()函数
  • 【高效开发工具系列】Wolfram Alpha
  • 分享7种SQL的进阶用法
  • protobuf-go pragma.go 文件介绍
  • C#设置程序开机启动
  • 爱可声助听器参与南湖区价值百万公益助残捐赠活动成功举行
  • SpringBoot 实现定时任务
  • 将Vue2中的console.log调试信息移除
  • EMC设计检查建议,让PCB layout达到最佳性能