指针和多维数组

以 int Zippo [4][2];为例

基知:

  1. 处理多维数组的函数要用到指针
  2. 二维数组的元素(或地址)是依次紧挨着排列
  3. 二维数组的首元素与一维数组的首元素不同
  4. 数组名是数组首元素的地址
  5. 数组的地址即数组首元素的地址,即一般说什么什么的地址均指首元素的地址,因为它们在系统内部是依次紧挨着存储,知道了第一个元素的地址,便可依次找到剩余其它元素的地址
  6. Zippo[0]它本身既是一个内含俩个整数的数组,也是它这个内含数组的首元素地址
  7. 数组名Zippo是一个内含2个int类型值的数组的地址,同时它也是一个指向一个8字节的指针

内容
8. 在上面的二维数组中,因为数组名等于数组首元素的地址,而又由二维数组的定义,zippo的首元素是一个内含俩个int值的数组,即从二维视图来说是第一行的俩个元素,所以Zippo的值和&Zippo[0]的值相同,即二维数组的地址与Zippo[0]这个数组的地址相同,Zippo[0]的值和它首元素即&Zippo[0][0]的值相同

  1. 给二维数组的指针加1,其值会增加对应类型大小的数值,所以在这方面,Zippo和Zippo[0]不同,因为Zippo指向的对象占用了俩个int大小,而Zippo[0]指向的对象只占用了一个int大小,所以Zippo+1表示增加了8个字节,而Zippo[0]+1表示增加了4个字节

  2. 要把Zippo[0]也要看成一个数组(所以由数组名等于首元素的地址,故Zippo[0]&zippo[0][0]),所以&Zippo[0]就是取数组Zippo[0]的地址
    而对于Zippo[0]的地址,其为&Zippo[0][0],所以Zippo
    Zippo[0]==&Zippo[0][0]

  3. 解引用时,Zippo代表该数组首元素(Zippo[0])的值(地址),但是Zippo[0]**本身是一个int类型的值的地址,所以Zippo就是&Zippo[0][0],简而言之,Zippo是地址的地址,必须解引用俩次才能获得原始的值**

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值