鱼C论坛

 找回密码
 立即注册
查看: 759|回复: 5

求问大神数组指针

[复制链接]
发表于 2021-12-20 16:57:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第二张图里的把int (*p)[4] = array改成int (*p)[3][4]= &array是什么意思呢?理解不了为什么又要加个取址符。。。
然后就是*(*(p+i)+j))的前面又加了一个*解引用又是什么意思呢?求解答
360截图20211220165227374.jpg
360截图20211220165031638.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-20 17:32:08 | 显示全部楼层
本帖最后由 jhq999 于 2021-12-20 17:40 编辑
  1. int (*p)[3][4]= &array;//(*p)[3][4]代表二维是3一维是4的三维数组指针,所以赋值给p二维数组array的指针的指针,让p[0]=array;
复制代码



*(*(p+i)+j))//差点被你的疏忽给骗了,是第一张图int (*p)[4]= array;的解引用,你想说的是哪张图的解引用?
                  //第一张图p=array;所以p的解引用也就是数组array的解引用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-12-20 18:28:58 | 显示全部楼层
jhq999 发表于 2021-12-20 17:32
*(*(p+i)+j))//差点被你的疏忽给骗了,是第一张图int (*p)[4]= array;的解引用,你想说的是哪张图的 ...

*(*(*p+i)+j))是这里的解引用,最内层代表的是*p+i的指针吗?那另外两个*是怎么解释的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-20 18:47:19 | 显示全部楼层
本帖最后由 jhq999 于 2021-12-20 18:53 编辑
李现实 发表于 2021-12-20 18:28
*(*(*p+i)+j))是这里的解引用,最内层代表的是*p+i的指针吗?那另外两个*是怎么解释的呢?

  1. *p=p[0]=array
  2. 所以,相当于*(*(array+i)+j);array+i相当于&array[i],*(array+i)相当于array[i];array[i]+j相当于&array[i][j];*&array[i][j]=array[i][j]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-12-20 20:53:39 | 显示全部楼层

这个点懂了,那int (*p)[4] = array和int (*p)[3][4]= &array这两行代码的区别是什么呢?求详解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-20 21:00:48 | 显示全部楼层
李现实 发表于 2021-12-20 20:53
这个点懂了,那int (*p)[4] = array和int (*p)[3][4]= &array这两行代码的区别是什么呢?求详解


(*p)[4] 是二维数组指针,(*p)[3][4]是三维数组指针
int (*p)[4] = array;//p=array
int (*p)[3][4]= &array//*p或者p[0]=array
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 19:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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