数组中的二维数组

一、二维数组

1、定义

形式:类型说明符  数组名【常量表达式(行数)】【常量表达式(列数)

其中行数可被省略,列数不能被省略。

2、引用

数组名 【下标】【下标】

3、初始化

例如:通过for循环,用k++实现对 a[3][4] 的赋值;再对二维数组进行遍历。

直接对二维数组赋初值:

        二维数组是特殊的一维数组,例如a[x][y],实质上有x个元素,每个元素都是一个一维数组,数组名分别为a[0]、a[1]...a[x-1],每个元素中包含y个长度。

二维数组在内存中是如何存储的?

        由于内存是线性的,因此尽管二维数组是以行×列的形式定义,在内存中依旧线性排列。

例如:int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12},其中a[0][0]占4个字节,小端序存储为01 00 00 00;依次向后直到0d 00 00 00 结束。该二维数组sizeof(a) = 4字节 × 3行 × 4列 = 48字节;每16字节为一个一维数组元素;每4字节为一个一维数组中所包含的一个元素。

4、说明

        二维数组中:a(整个数组),a[0](整个数组中的第一个一维数组),&a[0][0](整个数组中的首元素取地址) 表示的都是数组的首元素地址,是相同地址;只是指针有所不同。

        一维数组中: a(整个数组)与 &a[0] (整个数组中的首元素取地址)。

二、二维数组可应用于图像的处理

1、求出二维数组中的边缘信息之和。

2、图像的垂直镜像

从中间对半,进行交换,再遍历。


3、三阶魔方阵

每一行、每一列以及对角线之和均相等。

4、极值

用strcmp函数对二维数组中的一维数组元素进行比较。

5、逆序

定义的中间交换量为一个数组t[100]。用strcpy进行一维数组拷贝。

6、二分查找法

先对二维数组进行排序,再二分法查找。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值