二维数组的定义和引用

一、二维数组的定义
1.二维数组定义的一般形式为:
类型说明符 数组名 [常量表达式] [常量表达式];
如:int a[3][4];就是定了a为三行四列的数组。
2.我们也可以对二维数组采用这样的定义方式,使得二维数组可以被看作是一种特殊的一维数组
如:把a看作为一个一维数组,他有三个元素,每个元素又是一个包含4个元素的一维数组。

二、二维数组的引用
        二维数组的表示形式为:
数组名[下标][下标],如:a[2][3]。
二维数组和一维数组一样,它的下标最大值是常量表达式的最大值 - 1;因为行号和列好是从0起算的

三、二维数组的初始化
1.(1)分行给二维数组赋初值时:int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
(2)也可以将所有的数据写在一个花括号内,按照数组排列顺序对各元素赋初值:/
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
(3)也可以对部分元素赋初值:int a[3][4] = {{1},{5},{9}};
那么没有赋值的元素就会被0赋值
(4)如果对全部元素赋初值,则定义数组时,对第一维的长度可以不指定,但第二维的长度不能省略。即可以省略行号,不可以省略列好。如:
int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
(5)整型二维数组,一个元素的大小为4个字节,那么有几个元素就是n * 4的字节大小。
要注意的是,如果int a[][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13};
那么13作为第13个元素多出来的一行,这一行即使只有一个元素,总的字节大小也要加上4 * 4,后面没有被赋值的三个元素默认会为0;
(6)我们在遍历输出一个二维数组的各个元素时,可以采用:
int rows = sizeof(a)  / sizeof(a[0]) 来定义行号的个数
int cols = sizeof(a[0]) / sizeof(a[0][0]) 来定义列号的个数。

四、例题
1.求出整型数组a[N][N]主对角线最大值和辅对角线最小值。

需要注意的是主对角线都是a[i][i]类型的,辅对角线都是a[i][rows - i -1]类型的

2.字符型二维数组,整体倒序

跟一维数组一样,只需要赋值替换成strcpy(),比大小换成strcmp()即可。

3.二维数组,插入法排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值