二维数组

二维数组可以定义为
int arr[3][4] = {{1,2,3,4},{5,6,7,8,},{9,10,11,12}};
当然也可以这样定义
int arr[][4] ={{1,2,3,4},{5,6,7,8},{9,10,11,12}}
int arr[][4] ={1,2,3,4,5,6,7,8,9,10,11,12}

但是arr[2][]或者arr[][]这两种都是错误的。

对二维数组来言,就相当于定义了一个矩阵,对于上述例子来言就相当是一个三行四列的矩阵,如图所示:



在一维数组中呢

定义一个长度为5的数组,定义一个整型指针,然后数组名+1指针移动,那么二维数组呢?

在二维数组中呢,我们得明白这一点,行优先 ,为了便于理解我们可以把二维数组看成独特的一维数组,




我们把二维数组arr当做是由三个一维数组组成的,每个一维数组的长度为4,如:arr[2[1],arr[1]当做一维数组名来看待,那么arr[2][1]的意思就是一维数组arr[2]中的第2个元素,就是10
也可以这样理解:我们定义的二维数组是arr[3][4],那么第一行我们定义为arr[1],然后定义brr=arr[1],
比如说求brr[2]就是3,代换一下就是arr[1][2]=3;

对于一维数组来言,其数组名所指向的就是其首元素的地址。那么二维数组的数组名代表着什么?
我们假设二维数组的数组名也代表着其首元素的地址,但是现在二维数组的首元素不是单纯的的一个整型元素了,而是由四个整型元素所组成的一维数组。换句话说: 二维数组名代表的是首行的首地址
既然 arr 是0行的首地址,那么arr+1就代表着1行的首地址,如图所示




  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值