二维数组 的 与众不同的地方

1 二维数组的概念

2 二维数组用法和二维数组的偏移

 

 

1 二维数组 的概念 :二维数组实则就是双重的一维数组叠加而成的    而一维数组 就是 存放 元素的一个变量    那么二维数组 就是 存放元素的变量 变量 里面 又存有 元素  的变量 

2二维数组用法 和二维数组的偏移

常规的写法

%#x 是打印完整的十六进制        arr[i][j] 为什么是值呢(二维数组中 )  因为取值 &arr[i][j] 是取的地址   很多人 应该 这样理解  *&arr[i][j]  其实这样也是思路对的 但是 不可以这么写   我们这里的 *和&

是可以相关消除掉的  也就是 最后可以写成   arr[i][j]  这个是第一种 用法

下面介绍第二种 

知道第二种之前 我们需要 理解 

一维数组名 就是 数组首地址   列如  arr[2]  写法1 &arr[0]  2 arr  1 2 都是可以的 

他的偏移量   不加加 就是 首地址  加n 就是 偏移 n个位置   可以把它想成 一把游标卡尺 

它不移动 (不偏移)就是 在原点   不然就是有偏移

二维数组 就是 双重的一维数组  也说明了它存在双重的地址    双重的数组名  并且 是层层递进的 

二维数组 可以 把它想成是 行列式   行名就是 行首地址  列名就是 列首地址   

arr[2][3]   有 两行 三列   就是有 两个行地址  三个列地址   arr[0] arr[1] 分别是 第1行的首地址  第 2 行首地址就是 arr[1]   列也是一样的概念

代码

 arr[0] 因为是 第1行首地址  然后偏移 2 个位置  这时还是地址  最后 *  就得到了 值(第一个prtinf)

*arr   因为  arr 就是 二维数组名  也就是第一行的首地址   *arr 得到的是 第一行的列首地址地址  在偏移 2个位置  最后 *  得到值  (第二个printf)

最后  两个pritnf的值是一样 的  不懂的 慢慢体会    

                                          冲冲冲冲冲 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值