鱼C论坛

 找回密码
 立即注册
查看: 1724|回复: 3

[已解决]双层指针?

[复制链接]
发表于 2019-12-24 01:28:04 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-12-24 01:42 编辑

  1.        int (*p2)[5] = & temp ;
复制代码

        这一句定义了一个指向末维为 5 的二维整型数组的指针 p2,就是说,p2 完全可以像二维数组那样被访问,例如,执行完上述语句后,p2 和 temp 之间存在如下对应关系:
  1. p2[0][0]       -          temp[0]
  2. p2[0][1]       -          temp[1]
  3. . . . . . .
  4. p2[0][4]       -          temp[4]
复制代码

        如果用指针的形式来表达,对应关系为:
  1. * ((* p2 + 0) + 0)     -      temp[0]
  2. * ((* p2 + 0) + 1)     -      temp[1]
  3. . . . . . .
  4. * ((* p2 + 0) + 4)     -      temp[4]
复制代码

      所以,对于二维数组的指针而言,要访问到数组元素,两层括号是必须的,可以把两层括号理解为多维数组指针 "降维" 。在本例中,由于第一维的索引始终为 0 值,所以,内层括号可以省去。

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-30 03:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表